処理された(ローカル)データを他のサーバーにディスパッチし、他のサーバーで処理された同じ(外部の)データを受信して比較するQTフレームワーク(C++) 。QTcpServerが別のスレッドで送受信しています
大量のローカルデータが処理され、外部データがバッファされ、すべてのローカルデータが送信されるまで比較処理に入り込まない場合に問題が発生します。特定の時間枠で比較するデータが必要なので、タイムアウトが発生します。
ローカルデータをディスパッチするために1つのスレッドを使用し、外部データを受信して比較する別のスレッドを使用するというアイデアがありました。 QTcpServerはおそらく同時読み書きから保護するためにmutexを必要とします。
これは1つの接続で可能ですか、またはQT環境で受信するために1つの接続を持つ方がよいでしょうか?
私はフォーチュンサーバーの例 http://doc.qt.io/qt-5/qtnetwork-threadedfortuneserver-example.html をチェックするが、私はそれは同じ接続で送受信するための別のスレッドを使用することが可能と論理的かどうかを知る必要があります。
PS。私はマルチスレッドに慣れていないので、いくつかの概念を誤解した場合はお詫びします。
'QTcpConnection'は_one_スレッドにしか存在できません。あなたは同じスレッドで送受信する必要があります。つまり、接続と同じスレッド内のデータを処理する必要はありません。これは実際には時間がかかる部分です。 –