/**
* 线程间通信
*/
- (void)communication {
//获取全局并发队列
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
//获取主队列
dispatch_queue_t mainQueue = dispatch_get_main_queue();
dispatch_async(queue, ^{
//异步追加任务
for (int i = 0; i < 2; ++i) {
//模拟耗时操作
[NSThread sleepForTimeInterval:2];
//打印当前线程
NSLog(@"1---%@",[NSThread currentThread]);
}
//回到主线程
dispatch_async(mainQueue, ^{
// 追加在主线程中执行的任务
//模拟耗时操作
[NSThread sleepForTimeInterval:2];
//打印当前线程
NSLog(@"2---%@",[NSThread currentThread]);
});
});
}
运行结果:
2020-07-06 21:24:23.527480+0800 GCD[16849:3323509] 1---<NSThread: 0x600002b657c0>{number = 7, name = (null)}
2020-07-06 21:24:25.531328+0800 GCD[16849:3323509] 1---<NSThread: 0x600002b657c0>{number = 7, name = (null)}
2020-07-06 21:24:27.531902+0800 GCD[16849:3323350] 2---<NSThread: 0x600002b055c0>{number = 1, name = main}
网友评论