私のプログラムには、「送信者」スレッドと「受信者」スレッドがあり、どちらも 1 つのキューで動作します。
クラスでキューを次のように定義しました。
static Queue<my_class> queue = new LinkedList<my_class>();
Queues
ただし、同期されていないため、問題が発生していると思います。私の「受信者」スレッドでは、「送信者」スレッドの動作に影響を与えるアイテムをキューから削除する必要がある場合があります。
私は読んでいてBlockingQueues
、それが私の状況で使用する必要があるかどうか疑問に思っていましたか? その場合、申告を変更するにはどうすればよいですか? BlockingQueue
「送信者」スレッドと「受信者」スレッドの両方で宣言する必要がありますか?
常にBlockingQueue
1 つのスレッドだけがキューにアクセスするようにしますか?
申し訳ありませんが、私は同期の概念にまったく慣れていないため、かなり混乱しています..
ご協力ありがとうございました。