當我希望數據結構一次只能被一個線程讀取或寫入時,我真的很喜歡@ synchronized-construct而不是使用NSLocks。但是,當我想要更改整個對象時,我不能確定@synchronized是否合適。我想知道的,是這些工作是否以同樣的方式:Objective-C @synchronized object changes
// 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];
[更改鎖定對象insde @synchronized部]的可能重複(http://stackoverflow.com/questions/1215765/changing-the-locking-object-insde -synchronized截面) – kennytm 2012-02-15 11:02:18