java并发之synchronized
1.what(是什么)
synchronized可以用来做多线程之间的同步,java 1.6之前被成为重量级锁。
2.why(为什么会有这个关键字)
为了解决不同线程操作共享变量或者执行共享代码块的唯一性问题。
3.how(如何实现的)
4.where(在什么场景下使用)
| 锁名称 | 优点 | 缺点 | 使用场景 |
| 偏向锁 | 加锁和解锁均不需要额外的消耗,和执行非同步方法相比仅存在纳秒级的差异 | 如果线程之间存在锁竞争,那么会带来额外的锁撤销的消耗 | 只有一个线程访问同步块 |
| 轻量级锁 | 竞争的线程不会阻塞,采用自旋的方式 | 消耗cpu | 同步块执行比较快,追求响应时间 |
| 重量级锁 | 线程竞争不使用自旋,不会消耗cpu | 线程阻塞 | 同步块执行时间较长 |
浙公网安备 33010602011771号