Parallelität in Java: Von (Virtual) Threads bis Parallel- und Reactive-Streams, eine Übersicht

Marwan Abu-Khalil

Kurzinformationen

Auf Anfrage
Auf Anfrage

Detailinformationen

In diesem praxisorientierten Seminar wird die parallele Programmierung in Java von Grund auf erschlossen. Sie werden dadurch in die Lage versetzt, effiziente, deterministische parallele Programme in Java eigenständig zu entwerfen, und Sie lernen, die richtigen Technologien und Architekturen für Ihren Anwendungsfall auszuwählen. Im Laufe der Jahre sind stetig neue parallele APIs ins JDK aufgenommen worden. Sie lernen im Seminar alle wichtigen APIs für die Parallelität in Java kennen, und Sie verstehen im Detail, welche technologischen Paradigmen diesen jeweils zugrunde liegen.
Sie programmieren im Seminar zahlreiche Übungen, um die Tricks und Schwierigkeiten der Parallelität praktisch zu erfahren. So sehen Sie, wie man mit Threads Algorithmen beschleunigt und lernen dabei auch die Gefahren einer unüberlegten Parallelisierung kennen. Sie Setzen Fork-Join Tasks ein und erkennen an konkreten Beispielen, wo diese den klassischen Threads überlegen sind. Mit Java Parallel Streams lernen Sie ein elegantes API für die transparente parallele Datenverarbeitung einzusetzen.
Virtual Threads sind der neue Ansatz im JDK, um hochskalierbare Systeme zu bauen. Sie sehen, was Sie bei einem Umstieg von klassischen Platform-Threads auf Virtual-Threads beachten müssen, welche Chancen damit verbunden sind, und wo Fallstricke zu beachten sind. Mit Reactive-Streams lassen sich verteilte Systeme mit weitgehend transparenter Parallelität und automatischer Flusskontrolle konzipieren, Sie lernen die Grundkonzepte und den Einsatz kennen. Um das Verhalten Ihrer parallelen Programme zu genau zu verstehen, erhalten Sie einen tiefen Einblick in den Technologiestack für Parallelität im JDK. Sie sehen, wie die verschiedenen Technologien aufeinander aufbauen und auf welche Weise sie für unterschiedliche Einsatzzwecke optimiert sind.

Die folgenden Technologien schauen wir uns dafür in der Tiefe an:

  • Threads: Klassische Parallelität mit Mitteln des Betriebssystems
  • Virtual Threads: Hochskalierbare Alternative zu klassischen Threads
  • ForkJoinTasks: Für die Parallelisierung von Algorithmen
  • Parallel Streams: Transparente Parallelisierung von Datenströmen
  • Reactive Streams: Implizite Parallelität für skalierbare Verteilte Systeme

Vor diesem Hintergrund beantworten wir uns Fragen der folgenden Art:

  • Bei welchen Architekturen sind Virtual Threads den klassischen Platform Threads überlegen?
  • Wann benutze ich Fork-Join-Tasks wann besser Threads, und welcher Ansatz skaliert stabiler?
  • Was leisten Parallel-Streams für die Datenparallelität, für welche Use-Cases sind sie geeignet, und wo liegen ihre Begrenzungen?
  • Wie grenzen sich Reactive-Streams gegen Virtual Threads ab, wann ist welcher Ansatz vorzuziehen?

Abu-Khalil, Marwan

Marwan Abu-Khalil ist Software-Architekt in der Siemens AG und hält regelmäßig Konferenzvorträge über Parallelisierung und Software-Architektur. Er ist Trainer im Siemens Zertifizierungsprogramm für Software-Architekten.

Seminarziel

  • Die Java Technologien für Parallelität kennen und bewerten können
  • Programmierung der wichtigsten Parallel APIs in Java in Grundzügen beherrschen
  • Chancen und Fallstricke der parallelen Programmierung kennen

Zielgruppe

  • Entwickler*innen, Architekt*innen, Entscheider*innen, die ihre Systeme parallelisieren oder vorhandene Parallelisierungen optimieren möchten

Das Seminar ist sowohl für erfahrene Parallelisierer*innen als auch für Anfänger*innen in der Parallelität geeignet. Das Thema wird von Grund auf erschlossen und wir arbeiten uns bis in tiefliegende Fragestellungen vor.

Voraussetzungen

Grundkenntnisse in einer objektorientierten Programmiersprache

Methode

Das Seminar ist interaktiv aufgebaut, die Teilnehmer*innen erhalten die Gelegenheit Parallelisierungsansätze für ihre eigenen Systeme zu diskutieren. Die Programmierübungen liegen in unterschiedlichen Schwierigkeitsgraden vor, so dass Teilnehmer*innen auf Ihrem jeweiligen Niveau abgeholt werden. Konzeptionelle Aufgaben auf einem Shared Whitebord stellen das inhaltliche Verständnis sicher.

 

Informationen

Unsere Leistungen beim Präsenzseminar - Sie erhalten:

  • Schulungsunterlagen als Printversion oder PDF (bei Seminaren mit Genehmigung durch den Referenten)
  • Ihre persönliche Teilnahmebescheinigung   
  • Verpflegung während des Seminars
  • Ein 1-jähriges kostenloses Abonnement der Fachzeitschrift JavaSPEKTRUM oder OBJEKTspektrum
  • als Seminarteilnehmer sind Sie OOP-Alumni und erhalten 20% Rabatt auf den Teilnehmerpreis unserer jährlichen Fachkonferenz OOP!

Unsere Leistungen beim Onlineseminar - Sie erhalten:

    • der Seminarvortrag und begleitende Seminarunterlagen
    • Ihre persönliche Teilnahmebescheinigung

    Teilnehmer-Vorteile:

    • Frühbucher: 100 € Rabatt (gültig, bei einer Anmeldung bis 4 Wochen vor Seminarbeginn)

    Gruppenrabatt

    Bei einer gleichzeitigen Anmeldung von 3-4 Mitarbeitern erhalten Sie 5% Gruppenrabatt, ab 5 Mitarbeitern erhöht sich der Gruppen-Rabatt auf 10%!

    Inhouse-Seminare

    Dieses Seminar ist auch als Inhouse-Schulung durchführbar. Schon ab einer kleinen Teilnehmerzahl von mind. 5 Mitarbeitern kalkulieren wir Ihnen gerne ein kostengünstiges Inhouse-Trainings-Angebot.

    NRW-Bildungsscheck

    SIGS-DATACOM ist zugelassener Bildungspartner des Landes NRW. Ihren NRW-Bildungsscheck für unsere Seminare einzulösen ist möglich! Weitere Informationen erhalten Sie unter:NRW Bildungsscheck!!

    Disclaimer

    Wir sind für die eigenen Inhalte, die wir zur Nutzung bereithalten, nach den allgemeinen Gesetzen verantwortlich. Von diesen eigenen Inhalten sind Querverweise (externe Links) auf die von anderen Anbietern bereit gehaltenen Inhalte zu unterscheiden. Diese fremden Inhalte stammen nicht von uns und spiegeln auch nicht unsere Meinung wider, sondern dienen lediglich der Information. Wir machen uns diese Inhalte nicht zu eigen und übernehmen trotz sorgfältiger inhaltlicher Kontrolle keine Haftung für die Inhalte externer Links. Für den Inhalt der verlinkten Seite sind ausschließlich deren Betreiber verantwortlich.