先尝试,认为没有其他在竞争。如果执行失败(有其他人在竞争)。再重试一次。如: CAS 操作
先锁定资源,不管是否有其他人在竞争。 如:synchronized
锁的状态总共有四种:无锁状态、偏向锁、轻量级锁和重量级锁。随着锁的竞争,锁可以从偏向锁升级到轻量级锁,再升级的重量级锁(但是锁的升级是单向的,也就是说只能从低到高升级,不会出现锁的降级)。JDK 1.6中引入偏向锁和轻量级锁的,优化synchronized的底层实现