dispatch_get_main_queue 的同步异步问题
2013-03-23 18:41
316 查看
dispatch_sync(dispatch_get_main_queue(), ^(){
NSLog(@"222");
});
在ios中是无法使用 dispatch_sync(dispatch_get_main_queue()
原因如下:
在ios使用 dispatch_sync(dispatch_get_main_queue()^(){block体});
dispath向主队列加一个同步的block;
此时主队列在等待 dispatch_sync(dispatch_get_main_queue()^(){block体});执行
dispatch_sync在等待主队列执行完毕。
造成死锁。
所以在ios使用主队列 dispatch_get_main_queue() 时 应该使用异步执行
dispatch_async(dispatch_get_main_queue(), ^(){
NSLog(@"222");
});
原文链接:http://www.software8.co/caozuoxt/ios/3512.html
NSLog(@"222");
});
在ios中是无法使用 dispatch_sync(dispatch_get_main_queue()
原因如下:
在ios使用 dispatch_sync(dispatch_get_main_queue()^(){block体});
dispath向主队列加一个同步的block;
此时主队列在等待 dispatch_sync(dispatch_get_main_queue()^(){block体});执行
dispatch_sync在等待主队列执行完毕。
造成死锁。
所以在ios使用主队列 dispatch_get_main_queue() 时 应该使用异步执行
dispatch_async(dispatch_get_main_queue(), ^(){
NSLog(@"222");
});
原文链接:http://www.software8.co/caozuoxt/ios/3512.html
相关文章推荐
- [ios] dispatch_get_main_queue 的同步异步问题
- dispatch_get_main_queue的异步同步问题
- iOS - 关于dispatch_sync(dispatch_get_main_queue(), ^{...;}); 死锁问题的解释
- 【iOS开发-91】GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例
- 使用getJSON的同步异步问题
- GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例
- iOS GCD dispatch_async dispatch_get_main_queue
- GCD dispatch_async dispatch_get_main_queue
- dispatch_get_main_queue 转载自http://blog.csdn.net/nono_love_lilith/article/details/7829557 的空间
- dispatch_async和dispatch_sync在dispatch_get_main_queue上的区别
- GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例
- 第3月第19天 cxx_destruct dispatch_get_main_queue()死锁
- GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例
- 【iOS开发-91】GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例
- -performSelectorOnMainThread:withObject:waitUntilDone: VS dispatch_async(dispatch_get_main_queue(),
- 【iOS开发-91】GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例(转载)
- iOS 多线程初学习之dispatch_async(dispatch_get_main_queue(), ^{})
- iOS UI异步更新:dispatch_async 与 dispatch_get_global_queue 的使用方法
- dispatch_get_main_queue等待机会,直到主队列空闲才执行
- dispatch_sync(dispatch_get_main_queue() 面试题