QTcpServer 在不同的线程中接收和发送
QTcpServer receiving and sending in a different thread
我在 QT 框架 (c++) 中有一个软件,它可以将处理过的(本地)数据分派到其他服务器并接收在其他服务器上处理过的相同(外部)数据并进行比较。
在处理大量本地数据时出现问题,外部数据被缓冲并且在发送所有本地数据之前不会进入比较过程。我需要在特定时间范围内比较数据,因此这会导致超时。
一个想法是用一个线程调度本地数据,另一个线程接收和比较外部数据。 QTcpServer 可能需要一个互斥锁来保护它免于同时读写。
这是否可以用一个连接来完成,或者在 QT 环境中有一个用于发送和一个用于接收的连接会更好吗?
我查看了财富服务器示例
http://doc.qt.io/qt-5/qtnetwork-threadedfortuneserver-example.html
但我需要知道在同一个连接上使用不同的线程发送和接收是否可能和合乎逻辑。
PS。我是多线程的新手,所以如果我误解了一些概念,我深表歉意。
没有看到任何代码,很难明确地回答这个问题。但是,这可能会让您走上正轨...
我不希望您需要不同的线程来发送/接收数据; QTcpSocket 是异步的。
听起来您用来处理数据的架构可能需要修改。
foreign data is buffered and doesn't go into comparison process until all local data is sent
这听起来更像是一个问题,也是多线程有益的领域。因此,使用多线程来处理数据,而不是控制服务器之间的通信。
正如您所说的多线程新手,我建议您先阅读 this article 并将其示例用作模板。
我在 QT 框架 (c++) 中有一个软件,它可以将处理过的(本地)数据分派到其他服务器并接收在其他服务器上处理过的相同(外部)数据并进行比较。
在处理大量本地数据时出现问题,外部数据被缓冲并且在发送所有本地数据之前不会进入比较过程。我需要在特定时间范围内比较数据,因此这会导致超时。
一个想法是用一个线程调度本地数据,另一个线程接收和比较外部数据。 QTcpServer 可能需要一个互斥锁来保护它免于同时读写。
这是否可以用一个连接来完成,或者在 QT 环境中有一个用于发送和一个用于接收的连接会更好吗?
我查看了财富服务器示例 http://doc.qt.io/qt-5/qtnetwork-threadedfortuneserver-example.html 但我需要知道在同一个连接上使用不同的线程发送和接收是否可能和合乎逻辑。
PS。我是多线程的新手,所以如果我误解了一些概念,我深表歉意。
没有看到任何代码,很难明确地回答这个问题。但是,这可能会让您走上正轨...
我不希望您需要不同的线程来发送/接收数据; QTcpSocket 是异步的。
听起来您用来处理数据的架构可能需要修改。
foreign data is buffered and doesn't go into comparison process until all local data is sent
这听起来更像是一个问题,也是多线程有益的领域。因此,使用多线程来处理数据,而不是控制服务器之间的通信。
正如您所说的多线程新手,我建议您先阅读 this article 并将其示例用作模板。