首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QtConcurrent运行的线程id

QtConcurrent运行的线程id
EN

Stack Overflow用户
提问于 2012-09-10 10:13:05
回答 1查看 1.8K关注 0票数 4

我正在用QT做多线程程序。

我使用这段代码来尝试它是否如我所期望的那样工作。

代码语言:javascript
复制
QFuture<void> t1 = QtConcurrent::run(thread_process1, (void *)this);
QFuture<void> t2 = QtConcurrent::run(thread_process2, (void *)this);

thread_process1和2都只有一行,这行是

代码语言:javascript
复制
qDebug()<<"thread id: "<<QString("%1").arg((int) QThread::currentThreadId(), 0, 16) ;

但是,它们都显示线程id:"ffffffffb6085b40“

我做错了吗??QFutureWatcher似乎帮不上什么忙。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-10 10:36:41

run的文档说,

在单独的线程中运行函数。线程取自全局QThreadPool。请注意,该函数可能不会立即运行;该函数仅在线程可用时运行。

不能保证每个要运行的调用都会在不同的线程中运行。有可能这些函数运行得如此之快,以至于它们都是由同一个线程顺序处理的。尝试在thread_process_1中进行休眠调用,以查看函数是否随后被不同的线程拾取。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12344650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档