Objective-C中是否允许嵌套的同步块?

时间:2011-08-13 18:45:17

标签: java objective-c multithreading recursion

我在this article中读到,在Java中,允许使用嵌套的同步块。我知道Objective-C的synchronized块看起来很像Java。所以我想知道:Objective-C中是否允许嵌套块?

我还有一个侧面问题:递归块有实际限制吗?

感谢您的快速回答!

1 个答案:

答案 0 :(得分:26)

是的,他们是。来自the docs(现已退休):

  

Objective-C同步功能支持递归和可重入代码。线程可以以递归方式多次使用单个信号量;阻止其他线程使用它,直到线程释放用它获得的所有锁;也就是说,每个@synchronized()块都会正常退出或通过异常退出。

有关使用此方法和其他同步/锁定方法的性能的讨论,请参阅here