首页
注册
登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请
登录
›
Qt Documentation
V2EX
›
Qt
请问多线程之间是如何协调配合的?
maxssy
·
2024-03-15 11:53:17 +08:00
· 580 次点击
这是一个创建于 389 天前的主题,其中的信息可能已经有所发展或是发生改变。
比如一个 qt 程序接 2 个串口设备 A 和 B, 且 A,B 的控制程序分别放到了两个线程里防止阻塞界面线程.
现在需求是按 btn1 后先查询 A 的状态, 如果是状态 a1 则调用 B 的 b1 操作如果是 a2 则调用 B 的 b2 操作, 这套流程需要重复多次且 b1 和 b2 是耗时十几秒的操作, 需要等到 b1 或 b2 完成后才继续下一次循环
现在的问题是主线程的循环中用 QTime+QCoreApplication::processEvents 的非阻塞等待时循环不会等待 b1 或 b2 跑完直接跳到下一循环, 只能用 sleep 硬阻塞
有啥好办法或最佳实践吗?
多线程
协调
信号槽
1 条回复
1
sanbuks
2024-03-15 12:35:40 +08:00
《 C++并发编程实战》 4.4.2 提到 CSP ,可以参考下
简单说就是把 A 把 命令 投递到 B 的消息队列中, 通过 命令 的 condition_variable 实现反馈
关于
·
帮助文档
·
博客
·
API
·
FAQ
·
实用小工具
·
5386 人在线
最高记录 6679
·
Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 52ms ·
UTC 06:04
·
PVG 14:04
·
LAX 23:04
·
JFK 02:04
Developed with
CodeLauncher
♥ Do have faith in what you're doing.