我有一段代碼,經常訪問並從主線程或幾個其他後臺線程。我需要確保一次只能處理一個代碼。@synchronized()和NSLock的區別
我目前使用@synchronized(self) { }
塊,但我不確定這是否提供了正確的保護。它與NSLock
實例有什麼不同?
最後,任何人都可以建議我如何保護我的方法?該方法是在我的應用程序委託,我通過調用訪問它從不同的線程:
[[[UIApplication sharedApplication] delegate] myMethod];
非常感謝,
邁克
感謝您的幫助!總是使用'self'是否正確?在這種情況下,自我將指向應用程序委託,無論它是什麼調用它?我很困惑,爲什麼你必須傳遞一些東西到它! – 2009-11-21 21:15:26
如果要鎖定「每個實例」和[YourClass類],並且要鎖定「每個類」,則使用(個人)。 (自我)意味着關鍵部分的執行需要爲當前(特定)對象同步。 – 2009-11-21 22:33:32
啊,我明白了!非常感謝:-) – 2009-11-24 20:26:04