我可以在我开发的多线程应用程序中利用多核吗

Can I take advntage of multi core in a multi-threaded application that I develop

如果我在 linux 上编写多线程 C 应用程序(使用 pthreads),我可以利用多核处理器吗?

我的意思是应用程序程序员应该怎么做才能利用多核处理器。还是 OS 单独使用其各种调度算法

您无需执行任何操作。根据需要创建任意数量的线程,OS 会将它们与来自所有其他进程的线程一起调度到每个可用内核上。

"Take advantage of multi-core" 可以理解为 "utilize multi-core."

或者它可能意味着 "gaining a qualitative advantage from the utilization of multi-core."

任何人都可以做到前者。他们最终得到的软件运行速度通常比单线程的要慢。

后者是一个完全不同的命题。它需要编写软件,以便节省所有内核(总线锁定、RAM 和 L3 缓存)共享的计算资源的使用和访问,并专注于主要在各个内核及其 L1 缓存中进行尽可能多的计算。 L2 缓存通常由两个内核共享,因此它介于这两个类别之间,是的,它是一种共享资源,但它仅由两个内核共享,并且比所有内核共享的资源快得多。

这是在实现层面,编写和测试代码。

在早期阶段做出的决策 - 特别是系统的软件架构阶段 - 通常对系统的长期质量和性能更为重要。

一些帖子:1 2 3。还有很多。