parallelism:start
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
parallelism:start [2025/01/07 11:04] – [Nebenläufige Prozesse] Martin Pabst | parallelism:start [2025/03/09 07:53] (aktuell) – [Beispiel 1: Überschreiben der run()-Methode] Martin Pabst | ||
---|---|---|---|
Zeile 4: | Zeile 4: | ||
* Von modernen Betriebssystemen wird erwartet, dass sie es ermöglichen, | * Von modernen Betriebssystemen wird erwartet, dass sie es ermöglichen, | ||
- | Welche Herausforderungen dies in der Softwartechnik zur Folge hat und wie die auftretenden Probleme gelöst werden können, erfahren Sie in diesem Kapitel. \\ | + | Welche Herausforderungen dies in der Softwartechnik zur Folge hat und wie die auftretenden Probleme gelöst werden können, erfahren Sie in diesem Kapitel. |
**Unterkapitel: | **Unterkapitel: | ||
* [[parallelism: | * [[parallelism: | ||
Zeile 61: | Zeile 61: | ||
+ | ===== Die Methode join ===== | ||
+ | <WRAP center round info 60%> | ||
+ | Ruft man während der Abarbeitung eines Threads (im folgenden: " | ||
+ | **Wichtiges Detail:** \\ | ||
+ | Das " | ||
+ | </ | ||
+ | |||
+ | ==== Beispiel 2: Nutzung von Thread.join ==== | ||
+ | |||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | SystemTools.setSpeed(8); | ||
+ | ArrayList< | ||
+ | |||
+ | for (int i = 0; i < 10; i++) { | ||
+ | | ||
+ | | ||
+ | | ||
+ | } | ||
+ | |||
+ | for(Thread t: threads){ | ||
+ | | ||
+ | } | ||
+ | |||
+ | println(" | ||
+ | |||
+ | class MyThread extends Thread { | ||
+ | |||
+ | | ||
+ | int i = 0; | ||
+ | while (i < 10) { | ||
+ | i++; | ||
+ | |||
+ | | ||
+ | |||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | </ | ||
==== Beispiel 2: Eigene Klasse, die Runnable implementiert ==== | ==== Beispiel 2: Eigene Klasse, die Runnable implementiert ==== | ||
{{ : | {{ : | ||
Zeile 107: | Zeile 152: | ||
Lambda functions sind ein Ersatz für die in vielen anderen Programmiersprachen verfügbaren **closures**, | Lambda functions sind ein Ersatz für die in vielen anderen Programmiersprachen verfügbaren **closures**, | ||
* im Falle der lambda function ihr Wert zum Zeitpunkt des Starts der Funktion übergeben während | * im Falle der lambda function ihr Wert zum Zeitpunkt des Starts der Funktion übergeben während | ||
- | * im Falle der closures | + | * im Falle der closure |
Bei letzteren kann daher von verschiedenen closures und von außerhalb auf **die identische Variable** zugegriffen werden, während bei ersteren jede lambda function ihre eigene Kopie der Variable erhält und nur auf diese zugreifen kann. | Bei letzteren kann daher von verschiedenen closures und von außerhalb auf **die identische Variable** zugegriffen werden, während bei ersteren jede lambda function ihre eigene Kopie der Variable erhält und nur auf diese zugreifen kann. | ||
</ | </ |
parallelism/start.1736247844.txt.gz · Zuletzt geändert: 2025/01/07 11:04 von Martin Pabst