qthread 使用 signal 方法通信
2024-08-22 09:27:48
因为之间尝试过的 signal 机制,都是在 emit singnal_my() 的地方,直接调用了 slot 函数;相当于,slot 只是一个回调函数。
所以,在这里有点困惑,如果是要顺序执行完 slot 里面的函数,那是不是就相当于 thread 被阻塞?线程效率被大大削弱。关于这个问题,查找了手册。
关于 connect 函数,和我们通常使用的不同,它还有第四个参数 connecttionType,总共有以下几个:
1. Qt::AutoConnection,如果是跨线程的,那么采用 Qt::QueuedConnection;如果不是,则使用 Qt::DirectConnection
2. Qt::DirectConnection,一旦 emmit,slot 函数立马被调用;slot 函数执行完之后,回到 emmit 下一条语句
3. Qt::QueuedConnection,slot 函数在接收者的线程里被调用,signal 被标记到 接收者的 eventloop 中。
4. Qt::BlockingQueuedConnection,同3,但是发送者 blocked,知道 slot 结束
5. Qt::UniqueConnection,只能有一个 slot
connect 的默认参数是 1,所以,在跨进程 signal-slot 中,它自动选择了 Qt::QueuedConnection 方式,以实现线程间的宽松耦合。
最新文章
- jar hell &; elasticsearch ik 版本问题
- 从零开始学Python第七周:面向对象进阶(需修改)
- PHP就业班心得:PHP的基本含义与功能特点
- JDBC增删改查,PreparedStatement和Statement的区别
- Java遇见HTML——JSP篇之JSP指令与动作元素
- oracle 里面定时执行任务,比如存储过程内容等
- PE文件信息获取工具-PEINFO
- 关于更新到Xcode8的一些问题
- BMap介绍
- “System.Transactions.Diagnostics.DiagnosticTrace”的类型初始值设定项引发异常。
- HTTP的报文格式解析
- 【笔记】Loadrunner添加OS类型为Linux的服务器
- vue过渡和animate.css结合使用
- 1.1 About Percona XtraDB Cluster
- 通过sqlalchemy操作mysql
- CSS学习笔记_day2
- [OutLook]关闭Outlook时最小化
- List,泛型和Datatable 的相互转换
- Python字符串拼接的6种方法(转)
- python之pygal:掷一个骰子统计次数并以直方图形式显示
热门文章
- sublime text 乱码生成.dump问题的解决方法
- .Net Core 之 图形验证码 本文介绍.Net Core下用第三方ZKWeb.System.Drawing实现验证码功能。
- sun.misc.Unsafe的理解
- Java中的阻塞队列
- SQL Server删除distribution数据库
- 深入解析Windows操作系统笔记——CH2系统结构
- php之验证码小程序
- MySQL server has gone away报错原因分析/
- 好压(HaoZip)的命令行模式用法介绍
- 【小白的CFD之旅】06 流体力学基础