Merge pull request #368 from weizengreal/patch-2

自选锁 -> 自旋锁
This commit is contained in:
郑永川 2018-08-14 10:17:37 +08:00 committed by GitHub
commit dad1cabb3a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1594,7 +1594,7 @@ ThreadLocal 从理论上讲并不是用来解决多线程并发问题的,因
互斥同步的进入阻塞状态的开销都很大,应该尽量避免。在许多应用中,共享数据的锁定状态只会持续很短的一段时间。自旋锁的思想是让一个线程在请求一个共享数据的锁时执行忙循环(自旋)一段时间,如果在这段时间内能获得锁,就可以避免进入阻塞状态。
锁虽然能避免进入阻塞状态从而减少开销,但是它需要进行忙循环操作占用 CPU 时间,它只适用于共享数据的锁定状态很短的场景。
锁虽然能避免进入阻塞状态从而减少开销,但是它需要进行忙循环操作占用 CPU 时间,它只适用于共享数据的锁定状态很短的场景。
在 JDK 1.6 中引入了自适应的自旋锁。自适应意味着自旋的次数不再固定了,而是由前一次在同一个锁上的自旋次数及锁的拥有者的状态来决定。