【发布时间】:2012-02-15 10:58:09
【问题描述】:
当我希望一个数据结构一次只能由一个线程读取或写入时,我真的很喜欢 @synchronized-construct 而不是使用 NSLocks。但是,当我想更改我们正在 @synchronizing 的整个对象时,我不确定 @synchronized 是否合适。我想知道的是,这些工作方式是否相同:
// version 1:
// segment 1:
@synchronized(self.obj) {
self.obj = obj2;
}
// segment 2:
@synchronized(self.obj) {
// some other stuff
}
// version 2:
// segment 1:
[objLock lock];
self.obj = obj2;
[objLock unlock];
// segment 2:
[objLock lock];
// some other stuff
[objLock unlock];
【问题讨论】:
标签: objective-c synchronization synchronized