2

我正在使用一个复杂的 C 代码,它通过 posix 线程具有并行支持。它是在超线程存在之前编写的。

我在 Macbook i5(2 核 4 线程)上运行代码。由于代码在强制在 4 个线程上运行时存在各种 malloc 错误等,但在 2 个线程上很好,这让我产生了疑问:您是否需要专门的编程来启用并行 pthread 代码以支持超线程?

由于我对 pthreads 完全一无所知,我假设它会自动检测可用线程的数量并运行良好,而不是仅使用物理内核的数量正确运行。

4

1 回答 1

8

不,您的用户代码不需要特殊支持。操作系统为您隐藏了所有差异。

如果在增加线程数时代码运行不正常,则说明存在错误。

于 2012-12-30T17:51:57.667 回答