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

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

相关推荐

1 4 评论
分享
牛客网
牛客企业服务