开篇:多线程的核心矛盾——共享资源
两个人同时编辑同一份文档,A 在第三段加了一句话,B 把第三段删了。最后文档变成什么样?谁也说不准。
这就是多线程的核心矛盾:多个线程同时读写同一份共享数据,结果不可预测。
解决方案很朴素:排队。你改完了我再改——这就是"锁"。
一、synchronized 关键字
synchronized 是 Java 内置的锁机制,也是最常用的同步手段。
1.1 三种用法
修饰实例方法:锁的是当前对象(this)
大约 17 分钟
两个人同时编辑同一份文档,A 在第三段加了一句话,B 把第三段删了。最后文档变成什么样?谁也说不准。
这就是多线程的核心矛盾:多个线程同时读写同一份共享数据,结果不可预测。
解决方案很朴素:排队。你改完了我再改——这就是"锁"。
synchronized 是 Java 内置的锁机制,也是最常用的同步手段。
修饰实例方法:锁的是当前对象(this)