我正在使用通过posix线程并行支持的复杂C代码。它是在超线程存在之前编写的。
我在Macbook i5(2核4线程)上运行代码。由于代码具有各种malloc错误,例如强制在4个线程上运行,但在2个线程上运行良好,这让我有疑问:您是否需要专业编程才能启用并行pthreaded代码来支持超线程?
由于我对pthreads一无所知,我认为它会自动检测可用的线程数并运行正常,而不是只运行物理核心数。
答案 0 :(得分:8)
不,您的用户代码中不需要特殊支持。操作系统会为您隐藏所有差异。
如果在增加线程数时代码运行不正常,则会出现错误。