社区
Qt
帖子详情
一个关于不同线程对象间的通信问题... ...
suuare
2019-12-23 02:41:52
最近搞一个项目,很多地方用到并发处理,所以程序中有很多线程。同时采用了观察者模式用于通知主线程以更新图形化显示。按照QThread的用法,从QObject继承的对象调用moveToThread就可以使之存在于一个独立线程中,问题是被观察者调用notify函数时是间接调用了观察者的update,而被观察者于观察者有可能不在同一个线程中,这样直接调用会不会出问题呢?虽然程序运行看起来没啥问题,但还是觉得不放心,欢迎讨论!
...全文
514
4
打赏
收藏
一个关于不同线程对象间的通信问题... ...
最近搞一个项目,很多地方用到并发处理,所以程序中有很多线程。同时采用了观察者模式用于通知主线程以更新图形化显示。按照QThread的用法,从QObject继承的对象调用moveToThread就可以使之存在于一个独立线程中,问题是被观察者调用notify函数时是间接调用了观察者的update,而被观察者于观察者有可能不在同一个线程中,这样直接调用会不会出问题呢?虽然程序运行看起来没啥问题,但还是觉得不放心,欢迎讨论!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
比菜鸟还菜
2020-01-14
打赏
举报
回复
观察者模式的本质还是类指针的调用。跨线程时类指针被调用函数是处于调用者的线程,当多个线程读写该类的资源,一样有崩溃的问题出现。建议在被观察者的通知函数中加上队列信号,把信号发到被观察者本身的线程再进行操作。
King_zkk
2020-01-13
打赏
举报
回复
理解一下观察者模式的本质就知道没有问题了,观察者模式其实是object之间的函数回调,能register说明这些对象是线程间共享的。信号与槽本质也是差不多。鄙人理解如此,只做讨论交流
lwydezh
2019-12-30
打赏
举报
回复
同意1楼,在Qt多线程下,推荐采用signal-slot的通信方式。
donwmufromdying
2019-12-24
打赏
举报
回复
moveToThread只是让该对象挪入到目标线程内,目标线程对象需要start后才真正线程启动自己的event loop。此时最好是使用signal-slot来进行跨线程调用
httpclient.jar包下载
在Java开发中,HTTP
通信
是不可或缺的一部分,而Apache HttpClient库正是Java实现HTTP客户端操作的重要工具。本文将深入探讨httpclient.jar包,以及它与code.jar包的关系,帮助开发者更好地理解和使用这两个组件。 ...
Android EventBusDemo
【Android EventBus】是
一个
轻量级的消息总线库,它简化了Android应用中组件之
间
的
通信
。在传统的Android开发中,我们通常使用回调、接口或者BroadcastReceiver来处理组件
间
的交互,但这些方式往往会让代码变得复杂...
Java程序设计技巧1001例
通过这1001个实例,我们可以系统地掌握Java语言的各个方面,包括基础语法、面向
对象
编程、异常处理、集合框架、多
线程
、输入输出流、网络编程以及Java API的使用等。 1. **基础语法**:Java的基础语法是学习的起点...
java基础教程----精华版
Java是一种广泛使用的面向
对象
的编程语言,以其平台独立性、安全性、健壮性和高性能而闻名。这个"java基础教程----精华版"显然是一份精心整理的资料,旨在帮助初学者快速掌握Java编程的基础知识。下面将详细介绍Java...
Java使用开源Rxtx实现串口通讯 串口开发
例如,`SerialPort.getInputStream()`返回
一个
输入流用于接收数据,`SerialPort.getOutputStream()`返回
一个
输出流用于发送数据。 3. **事件监听**:Rxtx支持串口事件,比如数据到达事件、
线程
中断事件等,开发者...
Qt
16,816
社区成员
26,684
社区内容
发帖
与我相关
我的任务
Qt
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
复制链接
扫一扫
分享
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章