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

忙等待,也就是自旋,或者叫轮询,就是当发现条件不满足时通过一个无限循环来阻止往下执行,这是很消耗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

相关推荐

找不到工作死了算了:没事的,雨英,hr肯主动告知结果已经超越大部分hr了
点赞 评论 收藏
分享
1 4 评论
分享
牛客网
牛客企业服务