Benutzer-Werkzeuge

Webseiten-Werkzeuge


parallelism:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
parallelism:start [2025/03/04 08:54] – [Für Interessierte: Implementierung eines Interfaces durch eine Lambda-Function] Martin Pabstparallelism:start [2025/03/09 07:53] (aktuell) – [Beispiel 1: Überschreiben der run()-Methode] Martin Pabst
Zeile 61: Zeile 61:
  
  
 +===== Die Methode join =====
 +<WRAP center round info 60%>
 +Ruft man während der Abarbeitung eines Threads (im folgenden: "Thread 1") die Methode ''join'' eines **anderen** Threads (im folgenden: "Thread 2") auf, so wartet Thread 1 so lange, bis Thread 2 beendet ist. Erst dann fährt Thread 1 mit der nächsten Anweisung fort. \\ \\
 +**Wichtiges Detail:** \\  
 +Das "Warten" von Thread 1 geschieht nicht **aktiv**, indem in einer Wiederholung immer wieder überprüft wird, ob Thread 2 schon beendet ist, sondern **passiv**, d.h. der für Thread 1 reservierte Prozessorkern steht in dieser Zeit für andere Threads zur Verfügung: 
 +</WRAP>
 +
 +==== Beispiel 2: Nutzung von Thread.join ====
 +
 +<HTML>
 +
 +<div class="java-online" style="height: 400px; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'Threads1a'}">
 +
 +<script type="text/plain" title="Hauptprogramm.java">
 +SystemTools.setSpeed(8);
 +ArrayList<Thread> threads = new ArrayList<>();
 +
 +for (int i = 0; i < 10; i++) {
 +   Thread t = new MyThread("Thread " + i);
 +   threads.add(t);
 +   t.start();
 +}
 +
 +for(Thread t: threads){
 +   t.join();
 +}
 +
 +println("Alle fertig!", Color.lightgreen);
 +
 +class MyThread extends Thread {
 +
 +   public void run() {
 +      int i = 0;
 +      while (i < 10) {
 +         i++;
 +         
 +         println(this.getName() + " counts:  " + i );
 +         
 +      }
 +   }
 +}
 +</script>
 +
 +</div>
 +</HTML>
 ==== Beispiel 2: Eigene Klasse, die Runnable implementiert ==== ==== Beispiel 2: Eigene Klasse, die Runnable implementiert ====
 {{ :parallelism:thread-class-diagram_myrunnable.svg |}} {{ :parallelism:thread-class-diagram_myrunnable.svg |}}
parallelism/start.txt · Zuletzt geändert: 2025/03/09 07:53 von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki