我正在使用复杂的 C 代码,它通过 posix 线程提供并行支持。它是在超线程存在之前编写的。
我在 Macbook i5(2 核 4 线程)上运行代码。由于代码在强制在 4 个线程上运行时存在各种 malloc 错误,但在 2 个线程上运行正常,这让我产生疑问:是否需要专业编程来启用并行 pthreaded 代码以支持超线程?
由于我对 pthreads 一无所知,我假设它会自动检测可用线程的数量并正常运行,而不是仅根据物理内核的数量正确运行。
最佳答案
不,您不需要在用户空间代码中提供特殊支持。操作系统为您隐藏了所有差异。
如果您的代码在增加线程数时无法正常运行,那么您就遇到了错误。
关于c - PThreads:内核与线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14093045/