c - PThreads:内核与线程

标签 c parallel-processing pthreads

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

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

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

最佳答案

不,您不需要在用户空间代码中提供特殊支持。操作系统为您隐藏了所有差异。

如果您的代码在增加线程数时无法正常运行,那么您就遇到了错误。

关于c - PThreads:内核与线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14093045/

相关文章:

c - 将 yyin 指向 mfcalc 示例中的 FILE*

c - 如何以编程方式获取 mac os x macbooks 的电池生命周期?

c - C : client not recieving 中的简单 TCP 客户端服务器模型

c - I/O 到屏幕/标准输出

r - 为什么这个 foreach/dopar 函数没有使用我要求的所有内核?

c - pthread_create 并传递一个整数作为最后一个参数

pthreads - 如果在 pthread_key_create 失败后对某个键调用 pthread_key_delete 会发生什么情况?

c - 在Linux中创建pthread时检测到堆栈崩溃

R并行编程foreach的疑惑

C++如何运行可以随时调用的多个后台函数线程?