我正在为多核机器编写可移植代码,并且我想要内核级线程,以便线程可以使用多个cpu。在阅读Qt助手的QThread文档后,我仍然没有发现任何提示。QThread是在用户级别,内核级别还是两者上?
在Windows XP上,QtSDK中的多线程示例(mandelbrot)仅使用一个内核。所以我猜想在XP上只有用户级别的线程是可能的。因为没有安装完整的SDK,所以我还没有在Linux或OSX上测试过。 编辑:在SDK中给出的例子是愚蠢的 - 它只使用一个线程进行计算,所以绑定到只有一个核心是误导。自己构建一个示例我可以使用所有内核,所以在XP上使用mingw/GCC Qt使用内核级线程。
那么,QThread使用什么样的线程?是否可以指定使用哪种线程?
多个进程也是一个与共享内存结合的选项。
编辑
http://doc.qt.io/qt-4.8/thread-basics.html给出了一个很好的介绍。