线程安全与非线程安全的区别
来源:互联网 发布:java编写九九乘法表 编辑:程序博客网 时间:2024/05/16 23:58
话不多说,直接上例子,用例子说明一切。
ArrayList是非线程安全,Vector是线程安全的
线程A,B同时访问ArrayList C(非线程安全)
他们都读出C的第一个元素是100(假设该元素是表示书库的库存),这时候A线程因为其他原因挂起了,而B还在执行
那么B线程显示还有100个书本库存,B根据他卖出的货量修改元素为:100-20=80.
这时候A线程回来了,他也开始继续执行,他开始修改,结果他修改为100-10=90
这时候就出现问题了,实际只有70本,显示的却是90
而vector不会,A访问的时候显示100,B再来访问就不能访问,当A修改完毕后,B才能访问,显示为80,这样就不会出现问题
总结下:同一个非线程安全(例如:ArrayList)可以被多个用户(线程)同时访问
而同一个线程安全(例如:vector),A线程在访问的时候,B线程不能访问而挂起,等A释放对vector的锁以后B再访问。
- PHP线程安全与非线程安全的区别
- PHP线程安全与非线程安全的区别
- 线程安全与非线程安全的区别
- PHP 线程安全与非线程安全版本的区别
- PHP线程安全与非线程安全的区别
- 线程安全非线程安全的区别
- 线程安全与非安全
- JAVA的线程安全和非线程安全的区别
- PHP线程安全和非线程安全的区别
- 关于PHP线程安全和非线程安全的区别
- 关于PHP线程安全和非线程安全的区别
- 线程安全与非线程安全
- JAVA线程安全与非线程安全
- 线程安全与非线程安全
- 线程安全与非线程安全
- 线程安全与非线程安全
- 线程安全与非线程安全
- 线程安全与非线程安全
- SEC文件:摩托罗拉移动为什么值得Google花124亿美元收购
- ASP.NET的错误处理机制
- 关于浏览器兼容一点事
- SQL Server 2008 允许远程链接
- 装箱拆箱
- 线程安全与非线程安全的区别
- 系统分析与设计之用例图
- 公钥、私钥、数字证书的概念
- hibernate uniqueResult方法
- c#中Dictionary、ArrayList、Hashtable和数组 Array 的区别是什么?
- Linux平台下物理DG部署
- hdu1232 畅通工程
- Android - LayoutInflater
- CSP编程基础--CryptAPI使用过程中碰到的问题