我想知道,如果我有一個需要同步的對象,它存在於代碼塊中的幾個(2-3)位置,添加更好(更快) @synchronized整個塊或每個對象發生之前?Objective-C:@synchronized optimal use
@synchronized (someObj) {
[someObj removeAllObjects];
}
..
@synchronized (someObj) {
[someObj addObject:[NSNumber numberWithInt:203]];
}
VS
@synchronized (someObj) {
[someObj removeAllObjects];
... (potential a large block of code)
[someObj addObject:[NSNumber numberWithInt:203]];
... (potential a large block of code)
}
對這個有什麼想法?
對於「使其工作正常;使其正確工作;使其工作得更快」。 – 2011-04-08 17:01:44
讓它工作並使其正確工作應該是同一件事。然後讓它工作得很快。 – 2013-03-17 08:16:44
根據我的經驗,每個軟件項目都有一個「第一次工作逼近」時刻,與「時間優化」時刻截然不同。你可以爭辯說,前一刻是無關的,但我注意到,如果沒有其他人,這往往是開發人員的重要時刻。作爲這個抽象事件存在的證據,我向你推薦你曾經使用過的每一半的垃圾軟件。 :) – ipmcc 2013-03-17 12:01:45