3
Q
线程如何处理?
A
回答
2
唯一保证你得到的是,线程将独立运行彼此。调度是由操作系统完成的,操作系统通常会尝试使所有内核都处于繁忙状态,但由于计算机上的运行量远远超过程序,因此不能保证您的四个线程始终运行在四个内核上。
在Windows上,您可以将线程固定到处理器核心,但这既不是标准的也不是跨平台的,并不总是对您的程序有好处。
+1
*并且操作系统通常会尝试使所有内核忙碌*:取决于在“经济”模式下的笔记本电脑,仅仅通过几条指令即可唤醒内核将是浪费。 –
相关问题
- 1. 如何在线程中处理线程?
- 2. 如何处理线程
- 3. 如何处理线程?
- 4. 如何处理线程C#
- 5. 如何处理java线程
- 6. Java:ThreadFactory如何处理线程?
- 7. 线程处理
- 8. 处理线程
- 9. 如何处理OpenMP线程池争用
- 10. 如何处理挂起的子线程?
- 11. 如何处理线程即将终止?
- 12. 如何为WebBrowser控件处理线程
- 13. 如何多线程队列处理
- 14. 的Java如何处理一个线程
- 15. 如何处理线程和领域? (iOS)
- 16. 如何多线程处理方法
- 17. Java如何处理多线程?
- 18. .NET如何处理IOCP线程安全?
- 19. 线程和fork()。我该如何处理?
- 20. cherrypy如何处理用户线程?
- 21. 如何处理与线程退出
- 22. android如何处理动画线程
- 23. java如何处理多线程?比进程更多的线程
- 24. 多线程处理?
- 25. IOCP线程处理
- 26. 多线程处理
- 27. Java线程处理
- 28. C#中的多线程处理以及如何处理
- 29. 如何在ASP.NET中处理未处理的线程异常?
- 30. Loopers - 处理程序 - 线程
理论上,是的。在实践中,你可以有一个CPU拥有分配给它的所有线程,多个CPU拥有多个线程,其他CPU拥有多个线程或者其他任何组合。 –
没有保证。你的操作系统可以随你的线程做任何事情。 –
线程不一定建模并行:它们建模*逻辑*并发性,而不*实际*并发性。当你有多个线程时,你告诉操作系统你有同样的事情要做(逻辑上)。它可以接受这些指令并尝试通过将它们拆分到不同的CPU来运行它们。但是一些处理器也可以做这样的事情,如果一个操作需要10个周期才能完成,启动它并在其运行时从另一个线程执行操作(“超线程”)。或者在开始下一个工作之前,一个哑巴系统可以运行1个线程完成。 – IdeaHat