1
A
回答
2
为什么忙等待避免上下文切换,
忙等待不避免上下文切换!上下文切换是调度程序决定让CPU运行到其他进程的过程。忙碌的等待是一种技术,用于保持过程循环和等待某件事情。即防止两个进程同时修改某些共享数据。一个进程将循环,直到另一个进程“告诉”他已完成。这是一种糟糕的同步方法,因为CPU利用率下降,因为进程花费时间突然无所事事。
为什么上下文切换是不是浪费CPU时间
DEPENDS更便宜!如果临界区中的代码很短,则繁忙的等待可能比上下文切换快。一个进程可以忽略信号,并通过这种方式运行在CPU上,直到它自动地将其释放。 注意并非所有信号都可以忽略。
如果有线程而不是进程,会发生什么变化?
恐怕这太回答了,因为这可能取决于操作系统,如果操作系统知道线程。
相关问题
- 1. 上下文切换线程正在等待
- 2. 睡眠/等待线程中的上下文切换
- 3. 可以等待的线程,再次唤醒上下文切换
- 4. 忙碌的等待和共享内存
- 5. 在C中忙于等待#
- 6. 正在忙着等待
- 7. 繁忙的等待线程
- 8. 如何解释等待/异步同步上下文切换行为
- 9. 线程上下文切换vs进程上下文切换
- 10. 上下文切换和内核模式
- 11. 线程和上下文切换C++
- 12. 等待时间通过,而不忙在C窗口等待
- 13. lpc 1769上下文切换
- 14. Python:GIL上下文切换
- 15. 切换画布上下文
- 16. 上下文切换太贵
- 17. PHP上下文切换
- 18. 非忙等待的对象初始化
- 19. 忙碌/等待光标在enthought traitsui
- 20. 这是忙碌的等待吗?
- 21. GCC优化忙等待的死循环
- 22. C++禁用忙/等待光标
- 23. 避免在Access 2003中忙于等待
- 24. 等待文件下载vb.net
- 25. 切换OpenGL上下文或切换上下文渲染目标,而最好?
- 26. 从进程上下文切换切换线程上下文有多好?
- 27. AsyncTaskCodeActivity和等待后丢失的上下文
- 28. LINUX系统中互斥和信号量是否“忙等待”?
- 29. Java信号量默认使用忙等待还是等待/通知?
- 30. 上下文切换意味着模式切换
我只有一个问题与你的answear,忙等待不是一个糟糕的同步方法,这取决于用例。有时,当事件不需要太长时间时,最好使用繁忙的等待而不是内核事件,因为内核对象引入的开销太多,并且如果您知道事件(或信号)将在很短的时间内处于忙碌状态实际上等待是一种更好的方法,如果在繁忙的等待中花费的时间小于这个开销,那么在用户模式和内核模式之间切换可能会过度。 –
@EduG的确如此。我在我的回答中提到了它。有时候,忙碌的等待可能比通过上下文切换更好。 –