この記事では、主にJavaプログラミングスレッド同期ツール交換器の使用を研究しています。以下の特定のコンテンツを見てみましょう。
使用したデータやスペースなど、操作中に2つのスレッドを交換する必要がある場合は、Exchangeクラスを使用する必要があります。交換器は、スレッドが情報を交換するための非常に便利な方法を提供します。オブジェクトを交換する2つのスレッドの同期ポイントとして機能します。各スレッドがexchange ()メソッドに入り、オブジェクトを与える場合にのみ、他のスレッドが戻ったときに与えられたオブジェクトを受け入れることができます。
一度にデータを交換できるスレッドは2つのスレッドのみです。複数のスレッドがある場合、データを交換できるスレッドは2つだけです。一般的な例を見てみましょう:手をつないで1曲で商品を配達してください!
public class exchangertest {public static void main(string [] args){executorservice service = executors.newcachedthreadpool(); final andgurchanger = new Exchanger(); // exchangeオブジェクトを定義してデータを交換する// tasks service.execute(new runable(){@over ride public void run(){@over ride void run() "heroin"; system.out.println( "thread" + thread.currentthread()。getname() + "drugsが出している"); sweep((long)(math.random()*10000); (string)exchanger.exchange(data1); system.out.println( "shood" + thread.currentthread()。タスクservice.execute(new runnable(){@override public void run(){try {string data1 = "300万"; system.out.println( " + thread.currentthread()。 (string)andgchanger.exchange(data1); system.out.println( "thread" + thread.currentthread()。getName() + "geted with 300万" + data2);} catch(exceance.shutdown(); system.out.println( "トランザクションは完了しました、ランニング、ヘロイン! ");}}});}});}});}});}});}}}}コードから、私は2人が薬物を取引しているのを見たようでした...トランザクションの結果がどのようになっているか見てみましょう。
Thread Pool-1-Thread-1は、ドラッグヘロインを取り出しています。 Thread Pool-1-Thread-2は300万を取り出しています。 Thread Pool-1-Thread-2は、ヘロイン交換用のヘロインスレッドPool-1-Thread-1を300万で取得しています。トランザクションが完了しました。ヘロインを取り、すぐに走ってください!
取引が終わった後、お金で逃げます!
速く動作します。実行中の結果から判断すると、データ交換が実現します。これは、基本的なタイプのデータを交換するだけです。その本当の用途はこれに限定されません。たとえば、オブジェクトを交換できますが、これは便利です。 JDKは公式に高レベルのアプリケーションについて言及しました:
交換器を使用してスレッド間でバッファを交換するため、必要に応じてバッファーを塗りつぶすスレッドが新しく空のバッファーを取得し、充填されたバッファーを空いているバッファーに渡します。
これは実際の状況に基づいている必要があります。アイデアは上記と同じです。実際には、バッファクラスを定義する必要があり、このバッファーのクラスは2つのスレッド間で交換されます。クラスでそれを実装する方法については、実際の状況に依存します。交換器の使用はすべてです〜
上記は、Javaプログラミングスレッド同期ツール交換器の使用インスタンス分析に関するこの記事の全体的な内容です。私はそれがすべての人に役立つことを願っています。興味のある友人は、このサイトの他の関連トピックを引き続き参照できます。欠点がある場合は、それを指摘するためにメッセージを残してください。このサイトへのご支援をありがとうございました!