我在这篇文章中读到,在Java中允许嵌套同步块。我知道Objective-C的同步块看起来很像Java的。所以我想知道:Objective-C中是否允许嵌套块?我还有一个附加问题:递归块存在实际限制吗?谢谢您迅速的回答!
是的,它们是支持递归和可重入代码的。从文档(现已停用)中可以看到: Objective-C同步功能支持递归和可重入代码。一个线程可以以递归方式多次使用单个信号量;其他线程被阻塞,直到该线程释放所有使用它获取的锁;也就是说,每个@synchronized()块都正常退出或通过异常退出。 有关性能的讨论和其他同步/锁定方法,请参见此处。