Rice University
Gleichzeitige Programmierung in Java
Rice University

Gleichzeitige Programmierung in Java

Vivek Sarkar

Dozent: Vivek Sarkar

25.560 bereits angemeldet

Bei Coursera Plus enthalten

Verschaffen Sie sich einen Einblick in ein Thema und lernen Sie die Grundlagen.
4.5

(661 Bewertungen)

Stufe Mittel
Einige einschlägige Kenntnisse erforderlich
Flexibler Zeitplan
Ca. 18 Stunden
In Ihrem eigenen Lerntempo lernen
94%
Den meisten Lernenden hat dieser Kurs gefallen
Verschaffen Sie sich einen Einblick in ein Thema und lernen Sie die Grundlagen.
4.5

(661 Bewertungen)

Stufe Mittel
Einige einschlägige Kenntnisse erforderlich
Flexibler Zeitplan
Ca. 18 Stunden
In Ihrem eigenen Lerntempo lernen
94%
Den meisten Lernenden hat dieser Kurs gefallen

Kompetenzen, die Sie erwerben

  • Kategorie: Gleichzeitigkeit (Informatik)
  • Kategorie: Schauspieler Modell
  • Kategorie: Optimistische Gleichzeitigkeitskontrolle
  • Kategorie: Java Gleichzeitigkeit

Wichtige Details

Zertifikat zur Vorlage

Zu Ihrem LinkedIn-Profil hinzufügen

Bewertungen

4 Aufgaben

Unterrichtet in Englisch

Erfahren Sie, wie Mitarbeiter führender Unternehmen gefragte Kompetenzen erwerben.

Platzhalter

Erweitern Sie Ihre Fachkenntnisse

Dieser Kurs ist Teil der Spezialisierung Spezialisierung Parallele, gleichzeitige und verteilte Programmierung in Java
Wenn Sie sich für diesen Kurs anmelden, werden Sie auch für diese Spezialisierung angemeldet.
  • Lernen Sie neue Konzepte von Branchenexperten
  • Gewinnen Sie ein Grundverständnis bestimmter Themen oder Tools
  • Erwerben Sie berufsrelevante Kompetenzen durch praktische Projekte
  • Erwerben Sie ein Berufszertifikat zur Vorlage
Platzhalter
Platzhalter

Erwerben Sie ein Karrierezertifikat.

Fügen Sie diese Qualifikation zur Ihrem LinkedIn-Profil oder Ihrem Lebenslauf hinzu.

Teilen Sie es in den sozialen Medien und in Ihrer Leistungsbeurteilung.

Platzhalter

In diesem Kurs gibt es 7 Module

Willkommen bei Concurrent Programming in Java! Dieser Kurs ist als dreiteilige Serie konzipiert und deckt ein Thema oder einen Wissensbereich durch verschiedene Videovorträge, Demonstrationen und Programmierprojekte ab.

Das ist alles enthalten

1 Video5 Lektüren1 Programmieraufgabe1 Diskussionsthema

In diesem Modul werden wir mehr über Threads und Sperren erfahren, die seit über fünf Jahrzehnten als primitive Bausteine für die gleichzeitige Programmierung dienen. Alle Computerplattformen bieten heute irgendeine Form der Unterstützung für Threads und Sperren und stellen sie Entwicklern für eine Vielzahl von Programmiersprachen zur Verfügung. Wir werden lernen, wie Threads mit Hilfe von strukturierten (z.B. synchronisierte Anweisungen/Methoden) und unstrukturierten (z.B. java.util.concurrent libraries) Sperren in Java erstellt, verbunden und synchronisiert werden können. Wir werden auch neue Klassen von Fehlern kennenlernen, die auftreten können, wenn nebenläufige Programme auf gemeinsame Ressourcen zugreifen müssen. Diese Fehler werden als Verletzungen von Lebendigkeits-/Fortschrittsgarantien bezeichnet und umfassen Deadlock, Livelock und Starvation. Zum Abschluss dieses Moduls werden wir verschiedene Lösungen für das klassische "Dining Philosophers"-Problem untersuchen und diese Lösungen zur Veranschaulichung von Deadlock-, Livelock- und Starvation-Problemen verwenden.

Das ist alles enthalten

6 Videos6 Lektüren1 Aufgabe1 Programmieraufgabe

In diesem Modul lernen wir verschiedene Ansätze zur Koordinierung von Zugriffen auf gemeinsam genutzte Ressourcen kennen, ohne auf die bereits untersuchten Deadlock- oder Livelock-Fehler zu stoßen. Kritische/isolierte Abschnitte sind nebenläufige Programmierkonstrukte auf höherer Ebene (im Vergleich zu Sperren), die die Implementierung des gegenseitigen Ausschlusses vereinfachen, indem sie die Abwesenheit von Deadlocks und Livelocks garantieren. Die objektbasierte Isolierung lockert die durch kritische Abschnitte auferlegten Beschränkungen, indem sie es ermöglicht, den gegenseitigen Ausschluss auf einer objektspezifischen Basis zu spezifizieren, wie im Beispiel des Spanning Tree gezeigt. Die atomaren Variablen von Java stellen einen wichtigen, aber eingeschränkten Fall von objektbasierter Isolation dar, der auf allen Hardwareplattformen effizient implementiert ist. Schließlich werden wir lernen, wie die objektbasierte Isolation durch Lese-/Schreibzugriffsmodi weiter gelockert werden kann.

Das ist alles enthalten

6 Videos6 Lektüren1 Aufgabe1 Programmieraufgabe

Begleiten Sie Professor Vivek Sarkar zu einem Gespräch mit dem Software-Ingenieur Dr. Shams Imam in seinem Büro in Houston, Texas, über Threads, Sperren, Deadlocks, High-Level- und Low-Level-Konstrukte und die Bedeutung der gleichzeitigen Programmierung

Das ist alles enthalten

2 Videos1 Lektüre

In diesem Modul lernen wir einen weiteren High-Level-Ansatz für die gleichzeitige Programmierung kennen, das sogenannte "Actor"-Modell. Ein wesentlicher Unterschied zwischen dem Akteursmodell und dem Modell der isolierten Abschnitte besteht darin, dass im Akteursmodell keine Datenüberschneidungen möglich sind, da es keine Form von gemeinsam genutzten Variablen zulässt. Wie in allen Modellen der nebenläufigen Programmierung sind jedoch auch im Akteursmodell aufgrund der inhärenten Asynchronität in der Reihenfolge, in der Nachrichten zugestellt werden können, Formen des Nicht-Determinismus auf höherer Ebene möglich. Wir werden mehrere Beispiele für Gleichzeitigkeit unter Verwendung des Actor-Modells untersuchen, darunter den klassischen Sieve of Eratosthenes-Algorithmus zur Erzeugung von Primzahlen sowie Producer-Consumer-Muster mit unbegrenzten und begrenzten Puffern.

Das ist alles enthalten

6 Videos6 Lektüren1 Aufgabe1 Programmieraufgabe

In diesem Modul werden wir uns mit nebenläufigen Datenstrukturen beschäftigen, die eine wesentliche Softwareschicht in allen Multithread-Programmiersystemen bilden. Zunächst lernen wir Optimistic Concurrency kennen, ein wichtiges Multithreading-Muster, bei dem zwei Threads "optimistisch" Fortschritte bei der ihnen zugewiesenen Arbeit machen können, ohne sich über gegenseitige Konflikte Gedanken zu machen, und nur auf Konflikte prüfen, bevor sie die Ergebnisse ihrer Arbeit "festschreiben". Anschließend werden wir die weit verbreitete Datenstruktur Concurrent Queue untersuchen. Auch wenn die APIs für die Verwendung von Concurrent Queues sehr einfach sind, können ihre Implementierungen unter Verwendung des Optimistic Concurrency-Modells komplex und fehleranfällig sein. Zu diesem Zweck werden wir auch den formalen Begriff der Linearisierbarkeit kennenlernen, um die Anforderungen an die Korrektheit von nebenläufigen Datenstrukturen besser zu verstehen. Anschließend werden wir uns mit Concurrent Hash Maps beschäftigen, einer weiteren weit verbreiteten nebenläufigen Datenstruktur. Schließlich besprechen wir einen nebenläufigen Algorithmus zur Suche nach einem Minimum Spanning Tree eines ungerichteten Graphen, ein Algorithmus, der sich auf die Verwendung von nebenläufigen Datenstrukturen unter der Haube stützt.

Das ist alles enthalten

6 Videos7 Lektüren1 Aufgabe1 Programmieraufgabe

Die nächsten beiden Videos zeigen, wie wichtig es ist, etwas über parallele Programmierung und verteilte Programmierung in Java zu lernen. Professor Vivek Sarkar wird bei Two Sigma mit Fachleuten aus der Industrie darüber sprechen, wie die Themen unserer beiden anderen Kurse in der Praxis eingesetzt werden.

Das ist alles enthalten

2 Videos1 Lektüre

Dozent

Lehrkraftbewertungen
4.7 (52 Bewertungen)
Vivek Sarkar
Rice University
3 Kurse63.837 Lernende

von

Rice University

Empfohlen, wenn Sie sich für Softwareentwicklung interessieren

Warum entscheiden sich Menschen für Coursera für ihre Karriere?

Felipe M.
Lernender seit 2018
„Es ist eine großartige Erfahrung, in meinem eigenen Tempo zu lernen. Ich kann lernen, wenn ich Zeit und Nerven dazu habe.“
Jennifer J.
Lernender seit 2020
„Bei einem spannenden neuen Projekt konnte ich die neuen Kenntnisse und Kompetenzen aus den Kursen direkt bei der Arbeit anwenden.“
Larry W.
Lernender seit 2021
„Wenn mir Kurse zu Themen fehlen, die meine Universität nicht anbietet, ist Coursera mit die beste Alternative.“
Chaitanya A.
„Man lernt nicht nur, um bei der Arbeit besser zu werden. Es geht noch um viel mehr. Bei Coursera kann ich ohne Grenzen lernen.“

Bewertungen von Lernenden

4.5

661 Bewertungen

  • 5 stars

    66,86 %

  • 4 stars

    24,65 %

  • 3 stars

    5,90 %

  • 2 stars

    1,05 %

  • 1 star

    1,51 %

Zeigt 3 von 661 an

GA
5

Geprüft am 19. Sep. 2020

FH
4

Geprüft am 26. Nov. 2020

HK
5

Geprüft am 8. Dez. 2024

Platzhalter

Neue Karrieremöglichkeiten mit Coursera Plus

Unbegrenzter Zugang zu 10,000+ Weltklasse-Kursen, praktischen Projekten und berufsqualifizierenden Zertifikatsprogrammen - alles in Ihrem Abonnement enthalten

Bringen Sie Ihre Karriere mit einem Online-Abschluss voran.

Erwerben Sie einen Abschluss von erstklassigen Universitäten – 100 % online

Schließen Sie sich mehr als 3.400 Unternehmen in aller Welt an, die sich für Coursera for Business entschieden haben.

Schulen Sie Ihre Mitarbeiter*innen, um sich in der digitalen Wirtschaft zu behaupten.

Häufig gestellte Fragen