一、前言
大家有没有想过一个问题,Java中的++
操作是不是线程安全的呢,也就是说在多线程情况下,多个线程一起去执行++
操作,得到的结果会不会是我们所预期的结果呢,可以写个demo去验证一下。
public static int count = 0;
public static void main(String[] args) {
for (int j = 0; j < 10000; j++) {
new Thread(new Runnable() {
@Override
public void run() {
add();
}
}).start();
}
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(count);
}
public static void add(){
count++;
}
复制代码
最后的执行结果如下图:
很明显,Java中的++
操作,并不是线程安全的。 这就涉及到了多线程环