gpt4 book ai didi

c++ - QThread 是在用户级别、内核级别还是两者兼而有之?

转载 作者:搜寻专家 更新时间:2023-10-31 00:20:49 27 4
gpt4 key购买 nike

我正在为多核机器编写可移植代码,我想要内核级线程,这样线程就可以使用多个 CPU。在阅读 Qt Assistant 上的 QThread 文档后,我仍然没有找到任何提示。

在 Windows XP 上,QtSDK 中的多线程示例 (mandelbrot) 仅使用一个内核。所以我猜在 XP 上只有用户级线程是可能的。到目前为止,我还没有在 Linux 或 OSX 上测试过,因为没有安装完整的 SDK。编辑:SDK 中给出的示例很愚蠢——它只使用一个线程进行这些计算,因此仅绑定(bind)到一个内核会产生误导。我自己构建一个示例,我可以使用所有内核,因此在带有 mingw/GCC 的 XP 上,Qt 使用内核级线程。

那么,QThread使用了哪些线程呢?是否可以指定使用何种线程?

多进程也是与共享内存结合的一个选项。

编辑

http://doc.qt.io/qt-4.8/thread-basics.html给出了很好的介绍。

最佳答案

我不知道 Windows,但在 Unix 上它使用 pthreads。 QT 没有为 CPU 亲和性公开 API,因为它需要独立于平台和硬件。跨 CPU 的 QThread 分配留给操作系统调度程序,您不能通过某些 QT API 提示它。

关于c++ - QThread 是在用户级别、内核级别还是两者兼而有之?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5448341/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com