Java 多线程 线程安全问题

来源:互联网 发布:银行卡制作软件 编辑:程序博客网 时间:2024/06/05 23:58
/*线程安全问题产生发原因:1 多个线程在操作同一个数据2 操作共享数据的线程代码有多条当一个线程在执行操作共享数据的多条代码过程中 其他线程参与了运算就会导致线程安全问题的产生*/class Ticket implements Runnable{private  int num=100;public void run(){while(true){if(num>0){//cpu 运行到这里 判断>0后 运行下一个线程 下一个线程将num--//cpu 回来时不需要判读>0(已经判断过了) 直接num-- 会出现-1 -2 (错误) try{Thread.sleep(10);}catch(InterruptedException e){}System.out.println(Thread.currentThread().getName()+"--sale="+num--);}}}}class ThreadDemo{public static void main(String[] args) {Ticket t=new Ticket();Thread t1=new Thread(t);Thread t2=new Thread(t);Thread t3=new Thread(t);t1.start();t2.start();t3.start();}} 


阅读全文
0 0
原创粉丝点击