是忙等待的效率高还是阻塞的效率高?

忙等待,也就是自旋,或者叫轮询,就是当发现条件不满足时通过一个无限循环来阻止往下执行,这是很消耗CPU的。
而要阻塞就得进行系统调用,同样也消耗资源。
那么到底分别是什么情况下使用这两种策略呢?
是和I/O密集和运算密集有关吗?
#Java#
全部评论
当任务较快完成,用自旋锁好,因为比不用切换上下文,这个很费时间,而任务较难完成,需要很多时间的话,用阻塞挂起比较好,因为自旋耗CPU
点赞 回复 分享
发布于 2019-03-24 19:57
还有一个前提,自旋锁在多核机器下才有意义。
2 回复 分享
发布于 2019-03-24 20:50
不错不错  这个问题 问得好
点赞 回复 分享
发布于 2019-03-24 21:56
不错不错
点赞 回复 分享
发布于 2019-03-24 20:18

相关推荐

06-20 17:42
东华大学 Java
凉风落木楚山秋:要是在2015,你这简历还可以月入十万,可惜现在是2025,已经跟不上版本了
我的简历长这样
点赞 评论 收藏
分享
程序员饺子:正常 我沟通了200多个 15个要简历 面试2个 全投的成都的小厂。很多看我是27直接不会了😅
点赞 评论 收藏
分享
评论
1
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务