背景:单核CPU,多线程
不加锁带来的问题
主要是共享变量带来的问题:
两个线程对初始值为 0 的静态变量一个做自增,一个做自减,各做 5000 次,结果是 0 吗?
public class TestJoin {
static int count = 0 ; //共享变量
public static void main(String[] args) throws InterruptedException {
Thread t1 = new Thread(()->{
for (int i = 0; i < 5000; i++) {
count ++ ;
}
},"t1") ;
Thread t2 = new Thread(()->{
for (int i = 0; i < 5000;