Heim  >  Artikel  >  Java  >  Vollständige Entschlüsselung von Java-Multithread-Anwendungsmethoden

Vollständige Entschlüsselung von Java-Multithread-Anwendungsmethoden

黄舟
黄舟Original
2016-12-15 10:04:501607Durchsuche

Java-Multithreading wird von uns sehr häufig verwendet, und es gibt viele Anwendungsmethoden im Prozess des kontinuierlichen Lernens. Lassen Sie uns im Folgenden diese Schlüsselmethoden erlernen. Ich hoffe, das hilft. Schauen wir uns zunächst die spezifische Methodenklassifizierung an.

Die in Java-Multithread-Programmen häufig verwendeten Methoden lauten wie folgt: run(), start(), wait(), sleep(), notify(), notifyAll(), yield(), join ( ), und es gibt auch ein wichtiges Schlüsselwort synchronisiert. Diese Methoden werden im Folgenden erläutert:

1. run() und start()

Diese beiden Methoden sollten Ihnen bekannt sein. Fügen Sie den Code, der parallel verarbeitet werden muss, in die Methode run() ein Der mit der start()-Methode gestartete Thread ruft automatisch die run()-Methode auf, die durch den Java-Speichermechanismus festgelegt ist. Und die run()-Methode muss über öffentliche Zugriffsberechtigungen verfügen und der Rückgabewerttyp ist void.

2. Schlüsselwort synchronisiert

Dieses Schlüsselwort wird verwendet, um gemeinsam genutzte Daten zu schützen. Die Voraussetzung ist natürlich, zu unterscheiden, welche Daten gemeinsam genutzt werden. Jedes Objekt verfügt über ein Sperrflag. Wenn ein Thread auf das Objekt zugreift, werden die von Synchronized geänderten Daten „gesperrt“, wodurch verhindert wird, dass andere Threads darauf zugreifen. Nachdem der aktuelle Thread auf diesen Teil der Daten zugegriffen hat, gibt er das Sperrflag frei und andere Threads können darauf zugreifen.

1.public ThreadTest implementiert Runnable

2.{

3.public synchronisiert void run(){

4.for(int i=0 ;i<10;i++)

 5.{

 6.System.out.println(" " + i);

 7.}

8.}

9.public static void main(String[] args)

10.{

11.Runnable r1 = new ThreadTest();

 12.Runnable r2 = new ThreadTest();

 13.Thread t1 = new Thread(r1);

 14.Thread t2 = new Thread(r2);

 15.t1.start();

 16.t2.start();

 17.}

 18.}

 Oben Bei der i-Variablen in diesem Programm handelt es sich nicht um gemeinsam genutzte Daten, das heißt, das Synchronized-Schlüsselwort funktioniert hier nicht. Denn die beiden Threads t1 und t2 sind Threads zweier Objekte (r1, r2). Unterschiedliche Objekte haben unterschiedliche Daten, sodass die i-Variable der beiden Objekte r1 und r2 keine Daten gemeinsam nutzt.

Wenn der Code wie folgt geändert wird: Das Synchronized-Schlüsselwort funktioniert

19.Runnable r = new ThreadTest();

20.Thread t1 = new Thread( r);

 21.Thread t2 = new Thread(r);

 22.t1.start();

 23.t2.start();

Das Obige ist eine detaillierte Einführung in Java-Multithreading. Weitere verwandte Artikel finden Sie auf der chinesischen PHP-Website (www.php.cn).


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn