0
據我所知,相同的NSStrings被優化,使得它們在大多數(全部?)情況下實際上是同一個對象。我是否可以使用相同的NSStrings作爲@synchronized的一個sempahore
如果是的話,這是否意味着我可以使用NSString指針作爲@synchronized指令的信號量,並且在代碼塊以相同的字符串作爲信號量執行時阻止它?
- (void)doSomethingWithAString:(NSString *)myString
{
@synchronized(myString) {
//Something time intensive that never happens in parallel for the exact same myString
}
}
確定。任何其他想法如何我可以實現一個字符串內容相關鎖? – Stefan
好的謝謝。但是,全局字符串並不能真正解決問題。 – Stefan
您可以添加一個將字符串名稱作爲鍵的字典對象緩存的方法。你會叫@synchronized([myClass getSharedObject:myString])。當然,您需要使用全局鎖定將添加對象添加到該字符串的共享字典中。 –