【发布时间】:2013-07-01 03:10:05
【问题描述】:
有时我会编写以下代码来同步例程:
@synchronized(objToBeSync){ .... }
当两个线程试图同时访问同步块时,一个会阻塞另一个,直到一个退出同步块。
但是,有时我不希望一个阻止另一个,但其他人检查对象是否正在同步,然后做一些其他事情,所以我必须这样做:
@synchronized(objToBeSync){
_isBeingSync = YES;
...
_isBeingSync = NO;
}
_isBeingSync 是检查 objToBeSync 是否正在同步的附加变量。其他线程在继续工作之前检查_isBeingSync。我的问题是,objc 是否提供了直接检查 objToBeSync 的功能,但没有引入额外的 var 来标记其状态。
【问题讨论】:
标签: objective-c locking nonblocking synchronized