java - 线程在多核环境中是否更高效?

标签 java c multithreading programming-languages

<分区>

我指的是线程的使用。 在研究线程的重要性的过程中,我的脑海中出现了一个歧义:

线程在单核或多核计算机上效率更高吗?

最佳答案

它可以同时受益于两者,具体取决于您如何使用它们。

在单核上,如果你有两个后台任务,它们彼此独立地执行一些计算,那么将它们中的每一个分配给一个单独的线程可能是不明智的。这是因为你得到的是纯粹的上下文切换开销,没有任何性能提升。 另一方面,如果您有一个 UI 线程和一个后台工作线程,您的程序可以更具交互性(例如,用户可以做其他事情),因为 UI 线程不会被 CPU 密集型任务阻塞。

在多核系统上,一个区别是每个核心可以物理运行一个线程。所以你可以让多个线程并行运行。无论这些线程都是后台工作线程,还是一个 UI 线程、一个工作线程等,这一好处都是真实的。

关于java - 线程在多核环境中是否更高效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20779338/

相关文章:

linux - epoll:我必须使用多线程吗

ios - 进行 NSURLSession 调用并将图像加载到 NSImage 时发生内存泄漏

java - Android - 从数组动态更改 ImageView

java - 在大型迭代中划分循环

java - 如何动态调用kotlin的object(singleton)方法?

c - 如果操作数指向对象的数据成员但在整个数组边界内,指针减法行为是否明确定义?

java - 当客户端在 activemq 中空闲时间时删除特定队列

c - 如何在程序运行时更改 GTK 中的标签;从一个单独的线程

c - 如何使用LibRaw(c++)获取CR2图像的原始数据

c# - 如何使用线程完成,然后重用线程?