多线程(六)---多线程安全相关问题
2017-03-17 00:00
197 查看
多线程(六)---多线程安全相关问题
(一)多线程安全---问题代码
(二) 产生多线程安全问题的原因
1.线程任务中有处理到共享的数据
2.线程任务中有多个线程操作共享数据
一个线程在操作共享数据的过程中,其他线程参与了运行,导致数据错误问题3.内存图分析
(三) 解决思想
解决思想:多条线程操作同一数据源时。其中一条线程在操作,其他线程不参与操作计算。(四) 解决方案
synchronized (对象){ //同步的代码块 }
代码修改如下
class SaleTicket2 implements Runnable{ private int tickets = 100; Object obj = new Object(); public void run(){ while (true){ synchronized (obj){ if (tickets>0){ System.out.println(Thread.currentThread().getName()+"------tickets:"+tickets--); } } } } }
相关文章推荐
- Unix操作系统 网络相关的两个安全问题
- Servlet多线程安全问题
- XML与Webservices相关的安全问题概述
- inline hook 多核安全相关问题随记。。。
- java学习日记(6)____多线程的安全问题与死锁的产生
- 多线程程序设计的相关问题(转载)
- 关于ActionScript 3.0 安全沙箱及其相关问题
- XML与Webservices相关的安全问题概述
- XML与Webservices相关的安全问题概述
- 多线程安全问题
- servlet多线程安全问题
- Servlet线程安全相关问题
- Servlet多线程安全问题
- XML与Webservices相关的安全问题概述
- STL的多线程安全问题
- 【原创】关于C#多线程安全问题的讨论
- Servlet多线程安全问题
- Servlet多线程安全问题
- STL的多线程安全问题
- 多线程安全问题案例1 单例注入的类中含非线程安全属性