一 、 Synchronized锁
在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,下面介绍了Java SE1.6中为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻量级锁,以及锁的存储结构和升级过程。
CAS(Compare and Swap):比较并设置,用于在硬件层面上提供原子性操作。在Intel处理器中,比较并交换通过指令cmpxchg实现。比较是否和给定的数值一致,如果一致则修改,否则不修改。
二 、 同步的原理
Java中的每一个对象都可以作为锁。
1.对于同步方法,锁是当前实例对象。