社区
进程/线程/DLL
帖子详情
线程之间传递数据
nicholas
2000-08-31 10:13:00
在做一个网关时,有一个主线程接受请求,128个辅助线程,要求主线程把数据包处理后选择一个闲置辅助线程发送给服务端然后等待返回结果,请问怎么在线程之间传递数据比较好,我用的是MFC,为CThread的继承类申明了一个函数Passdata和一个成员变量m_MsgBuf,然后在主线程中调用passdata把数据包拷入m_MsgBuf中,请哪位大虾评价一下这种做法。谢谢!
...全文
203
4
打赏
收藏
线程之间传递数据
在做一个网关时,有一个主线程接受请求,128个辅助线程,要求主线程把数据包处理后选择一个闲置辅助线程发送给服务端然后等待返回结果,请问怎么在线程之间传递数据比较好,我用的是MFC,为CThread的继承类申明了一个函数Passdata和一个成员变量m_MsgBuf,然后在主线程中调用passdata把数据包拷入m_MsgBuf中,请哪位大虾评价一下这种做法。谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Holly
2000-08-31
打赏
举报
回复
你有128个辅助线程,如果都采用复制数据的方法,即使数据量不大,最终的开销也是很大的,影响整体的效率!
控制的过程你需要许多同步的控制:
线程轮询访问数据缓冲池,设置访问标记,设置处理完毕标记,设置数据未正在填充标记!
Holly
2000-08-31
打赏
举报
回复
你应当尽量避免采用复制数据的方法!直接采用全局的数据缓冲池!
pbi
2000-08-31
打赏
举报
回复
只要你解决了线程之间的同步问题,这样做是可以的。例如在辅助线程处理m_MsgBuf期间,别的线程不应该调用该对象的Passdata成员函数。如果你的数据拷贝量很大,也可以将数据块的指针传给辅助线程,避免拷贝的开销。其实这类程序的主要问题在于线程之间的同步,如主线程如何选择闲置的辅助线程,使用什么方法通知辅助线程,辅助线程处理完后怎样通知主线程等。
Areslee
2000-08-31
打赏
举报
回复
这样应该是可以了,在同一进程间传递数据随便用什么方法都可以。
利用Handler在
线程
之间
传递数据
这个demo介绍了通过Handler在
线程
之间
传递消息,demo中一个三个
线程
,主
线程
,发送消息的分
线程
,接收消息的分
线程
。发送消息的分
线程
会通知主
线程
更改标签文字,同时会通知接收消息的分
线程
更改进度条的进度。
MFC 多
线程
之间
通过消息
传递数据
MFC编程,一个对话框程序,多
线程
之间
通过消息
传递数据
。
Qt高级系列之8:Qt多
线程
线程
池数据同步机制及文件下载器项目实战
1.带领您深入学习QT5/C++:Qt多
线程
线程
池及数据同步机制 ,多
线程
文件下载器项目实战,继承自QThread,继承自QObject,QRunnable和QThreadPool,QtConcurrent,Qt多
线程
技术与数据加锁保护机制:QMutex,QSemaphore,QReadWriteLock,QWaitCondition;Qt
线程
池技术、Qt数据库连接池、等。2.所有章节均有理论知识介绍、接口讲解、实例代码讲解,讲解过程中不断穿插老师在开发过程中遇到的问题及解决方法(可以下载所有的电子课件与源码)。
java
线程
间等待并
传递数据
NULL 博文链接:https://huihuilou.iteye.com/blog/1934814
线程
间通信方式3:消息传递方式
线程
间通信方式3:消息传递方式的演示。采用计算演示
线程
的执行,并采用用户界面
线程
来实时显示执行的进度,
线程
间的通信方式采用了3种方式相结合,对多
线程
间的通信有比较好的学习和研究价值。
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章