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进行线程争夺。这时就会产生线程死锁。

  • 相关阅读:
    VS2005下安装boost
    NOIP2017宝藏 [搜索/状压dp]
    SCOI2008奖励关 [状压dp]
    莫队算法解析
    SCOI2005 互不侵犯 [状压dp]
    Codeforces ----- Kefa and Dishes [状压dp]
    TSP问题之状压dp法
    NOI2001炮兵阵地 [状压dp]
    状压dp入门
    「网络流24题」餐巾计划问题
  • 原文地址:https://www.cnblogs.com/xuaninitial/p/6377596.html
Copyright © 2011-2022 走看看