gpt4 book ai didi

c++ - 如何在 Qt5 中设置线程的 CPU 亲和性?

转载 作者:行者123 更新时间:2023-11-28 01:39:55 42 4
gpt4 key购买 nike

Qt5 中使用线程,如何设置单个线程的 CPU affinity

我想指定线程可以在其下运行的可用 CPU 内核的掩码。

换句话说,Qt5相当于Posix线程的pthread_setaffinity_np()是什么? ?

我可以为 QThreadPool 管理的线程执行此操作吗?

最佳答案

通常这类事情是通过提取 native 线程句柄然后执行任何必要的系统特定操作来完成的,因为不存在用于低级线程管理的可接受的跨平台 API。

确实,如果我们检查 qthread_unix.cpp 的源代码,我们将看到以下内容:

Qt::HANDLE QThread::currentThreadId() Q_DECL_NOTHROW
{
// requires a C cast here otherwise we run into trouble on AIX
return to_HANDLE(pthread_self());
}

qthread_win.cpp 中,实现将以预期的方式有所不同:

Qt::HANDLE QThread::currentThreadId() Q_DECL_NOTHROW
{
return reinterpret_cast<Qt::HANDLE>(quintptr(GetCurrentThreadId()));
}

因此,应用程序代码有责任执行与其预期运行的每个平台相关的适当低级操作。

关于c++ - 如何在 Qt5 中设置线程的 CPU 亲和性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47665948/

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