-(void)test
{
//同步串行队列 不开启线程 顺序执行
dispatch_queue_t t1 = dispatch_queue_create("com.ttt", DISPATCH_QUEUE_SERIAL);
dispatch_sync(t1, ^{
NSLog(@"1 = %@",[NSThread currentThread]);
});
dispatch_sync(t1, ^{
NSLog(@"2 = %@",[NSThread currentThread]);
});
dispatch_sync(t1, ^{
NSLog(@"3 = %@",[NSThread currentThread]);
});
//同步并行队列 不开启线程 顺序执行
dispatch_queue_t t2 = dispatch_queue_create("com.ttt", DISPATCH_QUEUE_CONCURRENT);
dispatch_sync(t2, ^{
NSLog(@"1 = %@",[NSThread currentThread]);
});
dispatch_sync(t2, ^{
NSLog(@"2 = %@",[NSThread currentThread]);
});
dispatch_sync(t2, ^{
NSLog(@"3 = %@",[NSThread currentThread]);
});
//异步串行队列 开启一个线程,且只开启一个,顺序执行
dispatch_queue_t t3 = dispatch_queue_create("com.ttt", DISPATCH_QUEUE_SERIAL);
dispatch_async(t3, ^{
NSLog(@"1 = %@",[NSThread currentThread]);
});
dispatch_async(t3, ^{
NSLog(@"2 = %@",[NSThread currentThread]);
});
dispatch_async(t3, ^{
NSLog(@"3 = %@",[NSThread currentThread]);
});
//异步并行队列,开启多个线程,不按顺序执行
dispatch_queue_t t4 = dispatch_queue_create("com.ttt", DISPATCH_QUEUE_CONCURRENT);
dispatch_async(t4, ^{
NSLog(@"1 = %@",[NSThread currentThread]);
});
dispatch_async(t4, ^{
NSLog(@"2 = %@",[NSThread currentThread]);
});
dispatch_async(t4, ^{
NSLog(@"3 = %@",[NSThread currentThread]);
});
}
网友评论