Dieser Artikel teilt mit Ihnen die spezifischen Methoden zur Implementierung der runnablen Methode von Java Multi-Threading für Ihre Referenz. Der spezifische Inhalt ist wie folgt
(I) Schritte
1. Definieren und implementieren Sie die Runnable -Schnittstelle
2. Überschreiben Sie die Run -Methode in der Runnable -Schnittstelle und speichern Sie den Code, den der Thread in der Run -Methode ausführen möchte.
3. Erstellen Sie Threadobjekte über die Thread -Klasse.
4. Übergeben Sie das Subklassenobjekt der Runnable -Schnittstelle als tatsächliche Parameter an den Konstruktor der Thread -Klasse.
Warum sprechen wir über den Konstruktor des Runnable Interface -Subklassenobjekts, das an Thread übergeben wurde? Da das Objekt, zu dem die benutzerdefinierte Methode gehört, ein Subklassenobjekt der Runnable -Schnittstelle ist.
5. Rufen Sie die Startmethode der Thread -Klasse auf, um den Thread zu starten, und rufen Sie die Runnable -Schnittstellen -Unterklasse -Auslaufmethode auf.
(Ii) Problem mit dem geteilten Code-Block mit Thread-Safe Code Block
Zweck: Gibt es ein Sicherheitsproblem mit dem Programm? Wenn ja, wie kann man es lösen?
So finden Sie die Frage:
1. Identifizieren Sie, welche Codes mit Multi-Threaded-Running-Code ausgestattet sind.
2. Eindeutig Daten teilen
3.. Klären Sie, welche Anweisungen im Multi-Thread-Code zum Austausch von Daten arbeiten.
Klassenbank {private int sum; public void add (int n) {sum+= n; System.out.println ("sum ="+sum); }} class cus implementiert runnable {private bank b = new Bank (); public void run () {synchronized (b) {für (int x = 0; x <3; x ++) {B.Add (100); }}}} öffentliche Klasse Bankdemo {public static void main (String [] args) {cus c = new Cus (); Thread T1 = neuer Thread (c); Thread T2 = neuer Thread (c); t1.start (); t2.Start (); }} Oder in der zweiten Art und Weise, dass der Synchronisationscode in die Modifikationsmethode synchronisiert ist.
Klassenbank {private int sum; public synchronisierte void add (int n) {Object obj = new Object (); sum+= n; try {thread.sleep (10); } catch (Ausnahme e) {e.printstacktrace (); } System.out.println ("sum ="+sum); }} class cus implementiert runnable {private bank b = new Bank (); public void run () {für (int x = 0; x <3; x ++) {B.Add (100); }}} öffentliche Klasse Bankdemo {public static void main (String [] args) {cus c = new Cus (); Thread T1 = neuer Thread (c); Thread T2 = neuer Thread (c); t1.start (); t2.Start (); }} Zusammenfassen:
1. Definieren Sie das Problem und die Methode, mit denen Sie in einer Klasse umgehen können.
2. Schreiben Sie die Run -Methode in der Klasse neu, die Runnable für die Aufforderung an die Methode zur Behandlung des Problems in der bereits definierten Klasse implementiert.
Akzeptieren Sie das Objekt der Klasse, um das Problem im synchronisierten Block zu behandeln.
3. Definieren Sie mehrere Threads, um in der Hauptmethode auszuführen.
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.