我经常遇到关键术语“线程安全”,并想知道它的含义。例如,在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