Leseproben
Dr. Heinz Kabutz Selbstständig

Concurrency ist ein Thema, das nicht jedem liegt. Es erfordert, dass man mit vielen Unwägbarkeiten arbeiten muss, was den eigenen Code betrifft.

Das Thema Concurrency – auch Nebenläufikgeit genannt – ist für viele die hohe Kunst der Java-Programmierung. Bisher mussten sich nicht viele Entwickler mit parallelen Threads herumschlagen. Aber suchen Sie heutzutage mal ein technisches Gerät, das nicht mit mehreren Prozesskernen arbeitet! Sie tragen wahrscheinlich in der Hosentasche ständig eines mit sich herum. Wir werfen einen Blick auf die Grundlagen von Code, der für die parallele Verarbeitung optimiert ist, und zeigen, welche ersten Hürden es zu nehmen gilt.

Mein bester Freund John Green erhielt an der Uni drei Jahre in Folge einen Preis für Informatik. Bis dahin hatte das niemand zuvor geschafft. Ich bin mir auch nicht sicher, ob sein Rekord bisher gebrochen wurde. Entweder war John außergewöhnlich begabt oder der Rest von uns war einfach nicht so schlau. Ich hoffe, es ist Ersteres. Einmal, und nur einmal, habe ich es geschafft, in einer Prüfung eine höhere Punktzahl als John zu erreichen. In einem Kurs ging es um paralleles und nebenläufiges Programmieren. Ein Thema, das ich sehr interessant fand. Ich habe mich also besser vorbereitet als für die meisten Tests zuvor, während John kaum zu irgendeiner der Vorlesungen ging. Als der Tag der Abrechnung kam, begannen wir beide wie wild zu schreiben. Die Prüfung bestand aus vier Aufgaben, und unser Professor MacGregor wies uns an, drei auszuwählen, die wir bearbeiten wollten. Ich tat mein Bestes, und am Ende erreichte ich etwa 92 Prozent der möglichen Punkte. Bei der anschließenden Diskussion des Tests fragte mich John: „Welche zwei Abschnitte hast du beantwortet?“ Ich war sicher nicht der beste Student. Ich war auch nicht Nummer Zwei oder Drei. Aber Concurrency und Parallelität faszinierten mich. Es war das einzige Mal, dass ich die Nummer Eins war.

Concurrency ist ein Thema, das nicht jedem liegt. Es erfordert, dass man mit vielen Unwägbarkeiten arbeiten muss, was den eigenen Code betrifft. Eine Single-Thread-Routine kann man einfach von oben nach unten lesen. Und abgesehen von ein paar kniffligen ifelse-Konstruktionen und -Schleifen, ist es normalerweise ziemlich offensichtlich, was der Code macht. Besonders bei Java-Code. Denn dort gilt „What you see is what you get“. Bei Concurrency ist alles offen.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Java Magazin 1.18 - "Extreme Java"

Alle Infos zum Heft
579821770Concurrency in Java
X
- Gib Deinen Standort ein -
- or -