什么是自旋?

很多 synchronized 里面的代码只是一些很简单的代码,执行时间非常快,此时等

待的线程都加锁可能是一种不太值得的操作,因为线程阻塞涉及到用户态和内核

态切换的问题。既然 synchronized 里面的代码执行得非常快,不妨让等待锁的线

程不要被阻塞,而是在 synchronized 的边界做忙循环,这就是自旋。如果做了多

次忙循环发现还没有获得锁,再阻塞,这样可能是一种更好的策略。

posted @ 2020-06-07 16:37  咔啡  阅读(511)  评论(0编辑  收藏  举报