面试答错了问题,太可惜了,冷静能分析出来,当时就是紧张,热。。。

原题是这样的

 dispatch_queue_t queue = dispatch_queue_create("abcqueuue",DISPATCH_QUEUE_SERIAL);

//    dispatch_queue_t queue = dispatch_queue_create("abcqueuue",DISPATCH_QUEUE_CONCURRENT);
    
    dispatch_async(queue, ^{
        NSLog(@"a");
        dispatch_sync(queue, ^{
            sleep(2);
            NSLog(@"b");
        });
        NSLog(@"c");

        
        
    });
    

问输出,我答得是abc b要在前面,因为在队列里。

遗憾回答的是错的,当时就是紧张,哎。。。还一直以为是对的。

后来回去的路上发现如果把代码改成注释的那个行替代第一行才是这个结果。哎

串行队列再进行串行操作就死锁了...哎,,遗憾,记录下吧

猜你喜欢

转载自blog.csdn.net/hccgk/article/details/89378390