page contents

什么是自旋?

轩辕小不懂 发布于 2022-04-15 14:51
阅读 359
收藏 0
分类:Java开发
3480
Nen
Nen
- 程序员

很多 synchronized 里面的代码只是一些很简单的代码,执行时间非常快,此时等待的线程都加锁可能是一种不太值得的操作,因为线程阻塞涉及到用户态和内核态切换的问题。既然 synchronized 里面的代码执行得非常快,不妨让等待锁的线程不要被阻塞,而是在 synchronized 的边界做忙循环,这就是自旋。如果做了多次循环发现还没有获得锁,再阻塞,这样可能是一种更好的策略。

请先 登录 后评论