parallelism:start
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
parallelism:start [2025/03/09 07:53] – [Beispiel 1: Überschreiben der run()-Methode] Martin Pabst | parallelism:start [2025/05/02 08:05] (aktuell) – [Aufgabe 1: Arbeitsteiliges Abarbeiten einer Aufgabe durch mehrere Threads] Martin Pabst | ||
---|---|---|---|
Zeile 52: | Zeile 52: | ||
| | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Beispiel 2: Eigene Klasse, die Runnable implementiert ==== | ||
+ | {{ : | ||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | SystemTools.setSpeed(8); | ||
+ | for (int i = 0; i < 10; i++) { | ||
+ | | ||
+ | | ||
+ | } | ||
+ | |||
+ | while (true); | ||
+ | |||
+ | class MyRunnable implements Runnable { | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | this.name = name; | ||
+ | } | ||
+ | |||
+ | | ||
+ | int i = 0; | ||
+ | while (i < 10) { | ||
+ | i++; | ||
+ | | ||
} | } | ||
} | } | ||
Zeile 68: | Zeile 105: | ||
</ | </ | ||
- | ==== Beispiel | + | ==== Beispiel |
< | < | ||
Zeile 106: | Zeile 143: | ||
</ | </ | ||
</ | </ | ||
- | ==== Beispiel 2: Eigene Klasse, die Runnable implementiert | + | |
- | {{ :parallelism: | + | ==== Aufgabe 1: Arbeitsteiliges Abarbeiten einer Aufgabe durch mehrere Threads |
+ | <WRAP center round todo 80%> | ||
+ | Im folgenden Programm wird die Summe aller Elemente eines Arrays ermittelt und ausgegeben. Die Abarbeitung dieser Aufgabe erfolgt in einem einzigen Thread. \\ \\ | ||
+ | Schreiben Sie das Programm so um, dass 10 nebenläufige Threads je 1/10 der Werte addieren und nach Abarbeitung aller 10 Threads die Teilsummen zu einer Gesamtsumme zusammengefasst werden. | ||
+ | </ | ||
+ | <WRAP center round tip 80%> | ||
+ | **Wichtige Info zu dieser Aufgabe:** \\ | ||
+ | Javascript-Programme im Browser unterliegen der Einschränkung, | ||
+ | Startet man in einer " | ||
+ | </ | ||
< | < | ||
- | <div class=" | + | <div class=" |
<script type=" | <script type=" | ||
- | SystemTools.setSpeed(8); | + | int[] werte = new int[1000]; |
- | for (int i = 0; i < 10; i++) { | + | for (int i = 0; i < werte.length; i++) { |
- | Thread t = new Thread(new MyRunnable(" | + | werte[i] |
- | t.start(); | + | |
} | } | ||
- | while (true); | + | println(new ArrayTool().summe(werte)); |
- | class MyRunnable implements Runnable | + | class ArrayTool |
- | String name; | + | int summe(int[] werte) { |
- | + | | |
- | | + | for (int i = 0; i < werte.length; i++) { |
- | | + | summe += werte[i]; |
+ | } | ||
+ | |||
+ | return summe; | ||
} | } | ||
- | | ||
- | int i = 0; | ||
- | while (i < 10) { | ||
- | i++; | ||
- | | ||
- | } | ||
- | } | ||
} | } | ||
</ | </ | ||
Zeile 142: | Zeile 184: | ||
</ | </ | ||
+ | [[.arbeitsteiligLoesung: | ||
- | ==== Für Interessierte: | + | ==== Für Interessierte: |
<WRAP center round info 80%> | <WRAP center round info 80%> | ||
Besitzt ein Interface nur eine einzige Methode, so nennt man es **functional interface**. Das Interface '' | Besitzt ein Interface nur eine einzige Methode, so nennt man es **functional interface**. Das Interface '' |
parallelism/start.1741506836.txt.gz · Zuletzt geändert: 2025/03/09 07:53 von Martin Pabst