[填坑]QT信号与槽机制注意事项

16 篇文章 1 订阅

1、信号与槽机制与回调函数性能对比

信号与槽机制比回调函数的方式要慢,当槽函数是非虚函数时,信号与槽机制大约比回到函数机制慢10倍,但依旧能够满足大多数应用的需求,因为1秒钟可以出发200万次这样的信号(i586-500机器,1个信号绑定一个槽函数,绑定两个1秒可以触发120万次)。

2、同一个信号与槽函数连接多次

默认情况下(Qt::AutoConnection)同一个信号和槽函数绑定几次,就会执行几次。可以使用(Qt::UniqueConnection)解决

3、多线程中发送完信号,默认不阻塞

多线程中当前线程发送信号到其他线程之后,当前线程直接往下运行,除非connect时使用Qt::BlockingQueuedConnection模式,进入阻塞等待槽函数线程返回。

4、多线程中槽函数并非实时执行

槽函数线程收到信号之后也未必立刻执行槽函数,而是当执行到检测程序,检测到队列中有信号才执行,因此多线程槽函数存在实时性风险。

5、信号发送过快,可能导致槽函数执行混乱

Qt中的信号如果触发的太快,槽这边都来不及执行完自己的任务,后面的信号又开始触发了,好像没有避免的方法,有的话欢迎留言

Qt 信号和槽机制压力测试-希望有前辈发表自己的看法

https://www.cnblogs.com/craigtao/p/6617561.html

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值