Dieser Artikel untersucht hauptsächlich die Verwendung des Java -Programmierfadensynchronisation -Tool -Austauschers. Schauen wir uns den folgenden Inhalt an.
Wenn zwei Threads während ihres Betriebs Informationen auseinander austauschen müssen, z. B. einen verwendeten Speicherplatz, müssen sie die Exchange -Klasse verwenden. Austauscher bietet eine sehr bequeme Möglichkeit für Threads zum Austausch von Informationen. Es kann als Synchronisationspunkt für zwei Threads zum Austausch von Objekten dienen. Nur wenn jeder Thread exchange () eingibt und das Objekt angibt, kann er das angegebene Objekt akzeptieren, wenn andere Threads zurückkehren.
Nur zwei Threads können Daten gleichzeitig austauschen. Wenn es mehrere Threads gibt, können nur zwei Daten austauschen. Sehen wir uns ein gemeinsames Beispiel: Hand in Hand und liefern Sie die Waren mit einem Lied!
public class ExchangeTest {public static void main (String [] args) {ExecutorService Service = Executors.NewCachedThreadpool (); "Heroin"; System.out.println ("Thread" + Thread.CurrentThread (). (String) Exchanger.Exchange (Data1); System.out.println ("Thread" + Thread.currentThread (). Der Task Service.execute (new Runnable () {@override public void run () {try {String data1 = "3 Millionen"; System.out.println ("Thread" + Thread.CurrentThread (). (String) Exchanger.Exchange (data1); System.out.println ("Thread" + Thread.currentThread (). GetName () + "Get mit 3 Millionen" + data2);} catch (Ausnahme E) {} endlich {service.shutdown (); Heroin! ");}}});}});}});}});}});}}Aus dem Kodex schien ich zwei Personen zu sehen, die Drogen tauschen ... Mal sehen, wie die Transaktionsergebnisse sind:
Thread Pool-1-Thread-1 nimmt das Drogenheroin heraus. Thread Pool-1-Thread-2 nimmt 3 Millionen heraus. Thread Pool-1-Thread-2 erhält den Heroin-Thread-Pool-1-Thread-1 für Heroinaustausch für 3 Millionen. Die Transaktion ist abgeschlossen. Nehmen Sie das Heroin und rennen Sie schnell!
Nachdem die Transaktion vorbei ist, rennen Sie mit dem Geld weg!
Es läuft schnell. Nach den laufenden Ergebnissen zu urteilen, wird der Datenaustausch realisiert. Dies tauscht nur eine grundlegende Art von Daten aus. Seine wirklichen Verwendungszwecke sind nicht darauf beschränkt. Zum Beispiel können wir ein Objekt austauschen, was nützlich ist. JDK erwähnte offiziell einen hochrangigen Antrag:
Verwenden Sie den Austauschpuffer zwischen den Gewinnen. Bei Bedarf erhält der Faden, der den Puffer füllt, einen neu freien Puffer und übergibt den gefüllten Puffer an den Faden, den freie Puffer.
Dies muss auf der tatsächlichen Situation beruhen. Die Idee ist die gleiche wie oben. In Wirklichkeit müssen Sie eine Pufferklasse definieren, und dann wird die Klasse dieses Puffers zwischen den beiden Threads ausgetauscht. Wie Sie es in der Klasse implementieren können, hängt dies von der tatsächlichen Situation ab. Das ist alles für die Verwendung von Austauscher ~
Das obige ist der gesamte Inhalt dieses Artikels zur Verwendung der Verwendung der Instanzanalyse des Java -Programmierfadensynchronisation -Tools -Austauschs. Ich hoffe, es wird für alle hilfreich sein. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!