【发布时间】:2016-08-31 05:20:15
【问题描述】:
我在 QT 框架 (c++) 中有一个软件,它假设将处理过的(本地)数据发送到其他服务器并接收在其他服务器上处理的相同(外部)数据并进行比较。
处理大量本地数据时会出现问题,外部数据被缓冲,直到所有本地数据都发送后才进入比较过程。我需要在特定时间范围内比较数据,所以这会导致超时。
一个想法是使用一个线程来分派本地数据,而另一个线程来接收和比较外部数据。 QTcpServer 可能需要一个互斥锁来保护它不被同时读写。
这可能与一个连接有关,还是在 QT 环境中一个连接用于调度和一个用于接收会更好?
我检查了财富服务器示例 http://doc.qt.io/qt-5/qtnetwork-threadedfortuneserver-example.html 但我需要知道在同一连接上使用不同的线程进行发送和接收是否可行和合乎逻辑。
PS。我是多线程的新手,所以如果我误解了一些概念,我深表歉意。
【问题讨论】:
-
QTcpConnection只能存在于 一个 线程中。您必须在同一个线程中发送/接收。也就是说,您不需要在与连接相同的线程中处理数据,这实际上可能需要一段时间。
标签: c++ multithreading qt qtcpserver