我經常遇到關鍵術語「線程安全」,並想知道它的含義。例如,在Firebase或Realm中,某些對象被視爲「線程安全」。對於某些線程安全來說究竟意味着什麼?在iOS中線程安全是什麼意思?
0
A
回答
0
搜索答案後,我從this網站的以下:
線程安全的代碼可以從多個線程或併發任務安全地調用,而不會造成任何問題(數據損壞,系統崩潰,等等)。不是線程安全的代碼一次只能在一個上下文中運行。線程安全代碼的一個例子是let a = [「線程安全」]。這個數組是隻讀的,你可以同時使用它從多個線程中沒有問題。另一方面,用var a = [「thread-unsafe」]聲明的數組是可變的,可以修改。這意味着它不是線程安全的,因爲多個線程可以同時訪問和修改數組,同時產生不可預知的結果。變量和數據結構是可變的,而不是固有的線程安全的,一次只能從一個線程訪問。
1
如果多個線程可以調用方法或訪問對象的成員數據而沒有任何問題,則說對象是線程安全的;一個「問題」廣義上被定義爲只從一個線程訪問時脫離行爲。
例如包含代碼i = i + 1
一個普通整數i
將不是線程安全的,因爲兩個線程可能會遇到語句和一個線程可能會讀的i
原始值,增加它的對象,然後寫回單個遞增值;所有在同一時間另一個線程。這樣,i
只會增加一次,它應該增加兩次。
0
線程不安全 - >如果任何對象允許同時修改多個線程。 線程安全 - >如果任何對象不允許同時修改多於一個線程。不可變對象通常是線程安全的
相關問題
- 1. 線程安全是什麼意思?
- 2. 線程安全是什麼意思?
- 3. 你是什麼意思Ruby on Rails不是線程安全的?
- 4. 「這個方法不是線程安全的」是什麼意思?
- 5. 彈簧安全鉤是什麼意思?
- 6. Aspect在ios中的意思是什麼
- 7. 什麼意思是「線框」在css中
- 8. 守護線程是什麼意思?
- 9. 是什麼意思:是什麼意思?
- 10. 在Python中「導入安全」是什麼意思?
- 11. 在PHP中,二進制安全的函數是什麼意思?
- 12. 默認情況下使靜態數據線程安全是什麼意思?
- 13. .NET安全中的Principal是什麼意思?
- 14. 什麼?在C#中是什麼意思?
- 15. 什麼allowLossyConversion在ios中的意思
- 16. 什麼是'線程被中止'。 '在SNIReadSync(SNI_Conn *,SNI_Packet **,Int32)'是什麼意思?
- 17. 線程安全在PHP上下文中意味着什麼?
- 18. 「?」是什麼意思?
- 19. $$ $$是什麼意思?
- 20. 什麼是「||」意思?
- 21. 「\\。\」,「\ ?? \」,「\\?\」,「\\」是什麼意思?
- 22. 「=」是什麼意思
- 23. &**是什麼意思?
- 24. 是什麼意思?
- 25. 「_」是什麼意思?
- 26. 什麼是:!:意思?
- 27. || =是什麼意思?
- 28. %%是什麼意思?
- 29. =是什麼意思?
- 30. %{}是什麼意思?
請在此處查看關於線程安全性的註釋。相關。 http://stackoverflow.com/questions/588866/whats-the-difference-between-the-atomic-and-nonatomic-attributes/589392#589392 – bbum
一些類似的討論在這裏,包括我的答案結尾的斯威夫特例子: http://stackoverflow.com/a/34386923/23649 – jtbandes