标签: java objective-c multithreading recursion
我在this article中读到,在Java中,允许使用嵌套的同步块。我知道Objective-C的synchronized块看起来很像Java。所以我想知道:Objective-C中是否允许嵌套块?
我还有一个侧面问题:递归块有实际限制吗?
感谢您的快速回答!
答案 0 :(得分:26)
是的,他们是。来自the docs(现已退休):
Objective-C同步功能支持递归和可重入代码。线程可以以递归方式多次使用单个信号量;阻止其他线程使用它,直到线程释放用它获得的所有锁;也就是说,每个@synchronized()块都会正常退出或通过异常退出。
有关使用此方法和其他同步/锁定方法的性能的讨论,请参阅here。