java并发之synchronized

1.what(是什么)

  synchronized可以用来做多线程之间的同步,java 1.6之前被成为重量级锁。

2.why(为什么会有这个关键字)

  为了解决不同线程操作共享变量或者执行共享代码块的唯一性问题。

3.how(如何实现的)

4.where(在什么场景下使用)

  

  锁名称                                       优点      缺点       使用场景
偏向锁 加锁和解锁均不需要额外的消耗,和执行非同步方法相比仅存在纳秒级的差异 如果线程之间存在锁竞争,那么会带来额外的锁撤销的消耗   只有一个线程访问同步块
轻量级锁 竞争的线程不会阻塞,采用自旋的方式   消耗cpu 同步块执行比较快,追求响应时间
重量级锁    线程竞争不使用自旋,不会消耗cpu   线程阻塞 同步块执行时间较长

总结

posted on 2017-09-18 15:42  FirstClass  阅读(95)  评论(0)    收藏  举报