我已經閱讀了關於多線程的ios sdk的一些東西,但我仍然沒有找到問題的答案: 在主線程中我有一個屬性,程序在線程中做了一些東西,其中屬性的值被更改,另一個線程需要更改的值。 那麼如何在一個線程中更改屬性或字段的值,以便它可以針對所有線程進行更改?屬性/字段線程同步
0
A
回答
3
更改單個對象上的屬性基本上會更改「針對所有線程」的值。沒有線程特定的對象副本,除非你自己創建它們。
對於多線程程序,主要的挑戰是確保兩個線程不會嘗試同時訪問/寫入相同的內存(在您的情況下屬性)。爲您的財產提供最簡單的方法(但不一定是最有效或最簡單的方法)是從您的財產聲明中排除「nonatomic」屬性。 (編輯:這裏假設你正在使用@synthesize
來實現你的屬性,而不是@dynamic
也沒有定製覆蓋getter和setter方法)
多線程是有點大的話題在這裏介紹,但蘋果的文檔一個好地方開始更多的信息:http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/Multithreading/Introduction/Introduction.html
相關問題
- 1. 同步訪問非易失性字段線程安全嗎?
- 2. 線程/同步
- 3. 線程同步
- 4. 線程同步
- 5. 線程同步
- 6. 線程同步
- 7. 線程同步
- 8. 線程同步
- 9. 線程同步
- 10. 跨線程同步屬性的最佳方法
- 11. Java線程可視性和同步
- 12. 多線程同步
- 13. 線程和同步
- 14. Java同步線程
- 15. 線程和同步
- 16. 線程同步:C
- 17. 線程vs同步
- 18. iphone線程同步
- 19. Boost線程同步
- 20. 線程:同步塊
- 21. 跨線程同步
- 22. GraphStream線程同步
- 23. C++:線程同步
- 24. C#線程同步
- 25. Java線程同步
- 26. Python線程同步
- 27. .NET線程同步
- 28. CUDA:同步線程
- 29. Java線程「同步」
- 30. c#線程同步
不是最簡單的方法是鎖? – CodaFi 2012-04-11 23:00:27
由於在屬性聲明中沒有指定「nonatomic」,編譯器會在後臺放置鎖碼。這假設你是'@綜合'他們雖然。編輯答案澄清這一點。 – MechEthan 2012-04-11 23:08:16
是的,但我沒有在屬性聲明中包含「nonatomic」屬性。儘管只在一個線程中更改了值,但是並未在主線程中或在我需要的值中更改值。 – Alexander 2012-04-12 14:23:12