猿问

iOS GCD队列阻塞问题

代码1
dispatch_queue_tmainQueue=dispatch_get_main_queue();
dispatch_sync(mainQueue,^{
NSLog(@"为啥堵塞");
});
代码2
dispatch_queue_tqueue=dispatch_queue_create("abc",DISPATCH_QUEUE_SERIAL);
dispatch_sync(queue,^{
NSLog(@"为啥不堵塞");
});
如上,两段代码,都运行在主线程中,mainQueue也是串行队列,为什么代码1会造成线程阻塞,而代码2不会阻塞?或者说代码2不会阻塞大家可能都了解,为什么在主队列调用dispatch_sync就会阻塞?
动漫人物
浏览 785回答 2
2回答

慕姐8265434

1App:主线程,你过来,给你个任务,任务完成后再走主线程:什么任务?App:你去那边打印机上,打印个东西,但是你不能离开这里,完成后才能走主线程:……2App:主线程,你过来,给你个任务,任务完成后再走主线程:什么任务?App:你叫**abc**去那边打印机上,打印个东西,但是你不能离开这里,完成后才能走主线程:**abc**,快去打印个东西,现在就要!
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答