zoukankan      html  css  js  c++  java
  • async 与sync

    遇到一个题

    NSLog(@"1");

        

        dispatch_async(dispatch_get_main_queue(), ^{

            

            NSLog(@"2");

        });

        NSLog(@"3");

     

    打印结果是  132  

     

    把async 换成sync  

     

    打印结果是 1  蹦了(线程死锁)

     

     

    思考:

    dispatch_async中加入dispatch_get_main_queue中,是异步运行中把主队列中的运行任务放到主线程中去运行。

    而dispatch_sync中的dispatch_get_main_queue,是在主线程中运行主队列,当把主队列中得任务放到主线程时,会和dispatch_sync进行线程争夺。这时就会产生线程死锁。

  • 相关阅读:
    HIHO线段树(成段)
    HIHO 线段树(单点)
    POJ 3468
    HDU 1754
    HDU 1698
    HDU 5119
    HDU 1394
    HDU 1166
    DZY Loves Chessboard
    谷歌Cookies无法写入
  • 原文地址:https://www.cnblogs.com/xuaninitial/p/6377596.html
Copyright © 2011-2022 走看看