zoukankan      html  css  js  c++  java
  • dispatch_get_main_queue 的同步异步问题

     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

  • 相关阅读:
    容器适配器之queue
    STL之deque
    STL之list
    STL之multiset
    STL之multimap
    STL之set
    string
    命名空间
    Windows Live Writer教程及代码高亮工具
    STL之vector
  • 原文地址:https://www.cnblogs.com/wwwroot/p/2977516.html
Copyright © 2011-2022 走看看