GCD导致的多线程死锁问题

死锁是一个很严重的问题。

所谓死锁是指两个线程A和B都卡住了,并等待对方完成某些操作。A不能完成是因为它在等待B完成。但B也不能完成,因为它在等待A完成。于是大家都完不成,就导致了死锁(DeadLock)。

dispatch_sync(dispatch_get_main_queue(),^(void){

NSLog(@"这里死锁了");

});

线程阻塞。同步加载容易造成线程阻塞。

我们可以看到,主线程是串行的,在执行某一个任务的时候线程被阻塞了,而这个任务(dispatch_sync)在执行时,又要求阻塞主线程,从而导致了互相的阻塞,也就是死锁。

http://www.mamicode.com/info-detail-1010323.html

你可能感兴趣的:(GCD导致的多线程死锁问题)