dispatch_once 引起的死锁

今天遇到一个使用dispatch_once引起的问题,在shareInstance的dispatch_once里初始化的同时也调用了别的类的dispatch_once方法初始化,而在别的dispatch_once方法又调用本类的dispatch_once,莫名导致程序死锁。

在google后得知在初始化未完成时相互的调用会造成死锁,也就是A->B->C->A的一个调用过程,,会导致整体链表无限增长,造成永久性死锁。

发表评论