智客公社

标题: 清华教授精讲Synchronized,震撼全网 [打印本页]

作者: @Xizi_0PqNrx4K    时间: 2021-7-3 20:14
标题: 清华教授精讲Synchronized,震撼全网
1.简介

1.1 作用

并发场景中,保证同一时辰只要一个线程对有并发隐患的代码停止操作
1.2 错误案例

需求:两个线程对 count 变量停止200000次循环添加,预期结果是400000次
public class SynchronizedDemo implements Runnable {    private static int count = 0;    static SynchronizedDemo synchronizedInstance = new SynchronizedDemo();    public static void main(String[] args) {        Thread t1 = new Thread(synchronizedInstance);        Thread t2 = new Thread(synchronizedInstance);        t1.start();        t2.start();        try {            t1.join();            t2.join();            System.out.println("count 最终的值为: " + count);        } catch (InterruptedException e) {            e.printStackTrace();        }    }    @Override    public void run() {        synchronized (this) {            for (int i = 0; i < 200000; i++) {                count++;            }        }    }}结果 :显然不等于400000次所以出现了运算错误

(, 下载次数: 28)