package com.freeflying.thread.base;
/**
* @ClassName: DataShare
* @Description:多个线程访问一个变量,如果多个线程同时访问,造成数据脏读问题
* @author freeflying
* @date 2018年6月22日
*/
public class DataShareNotSync {
public static void main(String[] args) {
Thread5 thread1=new Thread5();
Thread one=new Thread(thread1,"one");
Thread two=new Thread(thread1,"two");
Thread three=new Thread(thread1,"three");
Thread four=new Thread(thread1,"four");
Thread five=new Thread(thread1,"five");
one.start();
two.start();
three.start();
four.start();
five.start();
}
}
class Thread5 extends Thread{
private int count=5;
@Override
public void run() {
while(count > 0) {
count--;
System.out.println("this is "+this.currentThread().getName()+" calculate,count="+count);
}
}
}
结果:
this is one calculate,count=3
this is three calculate,count=2
this is three calculate,count=0
this is two calculate,count=2
this is one calculate,count=1