2 つのクライアントが通信できるようにするサーバーを使用してプログラムを設計しています。コマンドを実行するクライアントと、他のクライアントにコマンドを実行させる別のクライアントがあります。
これを機能させるために、2 つのスレッドがあります。1 つは制御対象クライアント用、もう 1 つはコントローラー クライアント用です。
制御されたクライアントは常に接続を維持し、タスクを含むベクトルを持ち、タスクが追加された場合にこれらのタスクを実行します。接続が閉じられると停止する無限 while ループがあります。
コントローラー クライアントはタスクをベクターに追加します。
2 つのスレッド間で共有されるベクトルがあるため、競合状態が発生する可能性がありますが、1 つのスレッドはオブジェクトを追加するだけで、もう 1 つのスレッドはオブジェクトをポップするだけなので、それは必要ですか? この問題でフローチャートを作ってみましたが、よくわからないかもしれません。フローチャートの作成方法がよくわかりません:
std::vector <CustomClass>
これを実現するために C++ から使用しています。
前もってありがとう、
ief2
編集: 追加の質問:vector.size()
呼び出しにはミューテックスが必要ですか?