代码分析
public class Volatile_test1 {
static int a = 0;
public static void main(String[] args) throws InterruptedException {
Thread t1 = new Thread(new Runnable() {
@Override
public void run() {
for (int i=0;i<1000;i++){
// System.out.println(Thread.currentThread()+":"+a);
// add();
a++;
}
}
});
Thread t2 = new Thread(new Runnable() {
@Override
public void run() {
for (int i=0;i<1000;i++){
// System.out.println(Thread.currentThread()+":"+a);
// add();
a++;
}
}
});
t1.start();
t2.start();
t1.join();
t2.join();
System.out.println(a);
}
public static void add(){
a++;
}
}
for循环中有三段代码,分别编号1,2,3
1.System.out.println(Thread.currentThread()+":"+a);
2.add();
3.a++;
会出现如下情况:
只出现2:会产生线程问题
同时出现1,2:不会产生线程问题
只出现3:不会产生线程问题
该问题待解决。。。。