可能重複:
What does @synchronized() do?@synchronized鎖定iVar和/或財產?
我有什麼@synchronized
確實,什麼將是最適合我的應用程序的問題。
我有一個NSMutableArray
,我將在後臺線程中進行變異並在前臺線程中進行訪問。如果在我改變它的內容的時候訪問數組,如果它意味着我可以從背景突變中獲取更新後的值,我很樂意輕鬆地訪問數組。然而,我不能100%確定NSLock
s和@synchronized
是如何工作的。
如果這是不可能的,是否有可能改變數組的副本,當完成時,鎖定屬性/實例變量時設置它的副本的內容,以凍結任何訪問者調用?
基本上,@synchronized(myArray)會凍結任何訪問者調用(讓這個調用掛起,直到鎖放棄然後執行)?
此外,是否有可能鎖定實例變量或屬性與NSLock?從我所看到的,它似乎只鎖定代碼塊。
調查Grand Central Dispatch ...這是一種更好的方式來執行多線程陣列邏輯。 – borrrden
@borrrden謝謝!這實際上是我目前如何處理多層邏輯。希望其他人也可以看到使用它。這很棒。 – RileyE