死锁是一个很严重的问题。
所谓死锁是指两个线程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