• 590阅读
  • 3回复

[提问]QT多线程传大数据怎样效率高? [复制链接]

上一主题 下一主题
离线jingjunlai
 

只看楼主 倒序阅读 楼主  发表于: 2019-05-06
比如我的服务器每连一个客户端都创一个线程,这个线程解包组包成结构体然后发给主线程,那么我应该用信号槽连接接收吗?因为不同线程下信号槽传参数引用和传值本身是没区别,都是复制传递,效率低,那么是应该用什么方法比较好?
离线青空飞羽

只看该作者 1楼 发表于: 2019-05-06
可以考虑用一个公共队列存储通讯线程收到的数据,主线程从该队列中取出数据进行处理
离线hitler++

只看该作者 2楼 发表于: 01-14
应该用异步多连接,而不是多线程
离线angelus

只看该作者 3楼 发表于: 01-14
写一个静态列表,然后加上线程同步,每个线程都往这个列表中放数据就行,放好数据就发送一个信号,通知主线程有更新,主线程也访问这个列表,加读写锁,取出数据,注意不要死锁就行了

如果要提高效率,可以多创建几个静态列表,然后动态平衡,把线程写数据平均分派到不同的列表里,在通知信号里告诉主线程当前线程写到那个列表中就行了,不过没太多必要,毕竟主线程处理是顺序处理,如果也是多线程处理,这样会提高效率


快速回复
限100 字节
 
上一个 下一个