Informationen zur Technologie

Python ist eine universelle, höhere Programmiersprache, die gut lesbar ist. Sie unterstützt mehrere Programmierparadigmen, wie die objektorientierte, die funktionale und die aspekt-orientierte Programmierung und bietet eine dynamische Typisierung. Sie wird oft als Skriptsprache eingesetzt.


Python 3.x - Konkurrierende Programmierung - Prozesse, Threads und asynchrone Programmierung - Schulung (4 Tage)

Kurzbeschreibung

Diese Python-Schulung beginnt mit der Einführung der Konzepte und Prinzipien in der Nebenläufigkeit. Die Teilnehmer lernen alles vom Amdahlschen Gesetz bis zur Multithreading- und Multiprozess-Programmierung, gefolgt von der Erläuterung der Multiprozessor-Programmierung, des Web-Scraping und der asynchronen E/A sowie der allgemeinen Probleme, mit denen Ingenieure und Programmierer bei der nebenläufigen Programmierung konfrontiert sind.


Voraussetzungen

• keine


    Seminarinhalt

    Erweiterte Einführung in die gleichzeitige und parallele Programmierung
    • Gleichzeitige vs. Parallele vs. Nebenläufige Programmierung
    • Die Bedeutung der Parallelität
    • Nicht alles sollte gleichzeitig erfolgen
    • Einfluss auf die Hardware-Architektur (z.B. CPU's)
    • Ein kurzer Überblick über das Beherrschen der Parallelität in Python
    • Einrichtung einer Python-Umgebung

    Amdahls Gesetz
    • Formel und Interpretation
    • Das Verhältnis von Amdahls Gesetz zum Gesetz der sinkenden Renditen
    • Umsetzung in Python
    • Praktische Anwendung des Amdahlschen Gesetzes

    Multithreading
    • Wozu dient Multithreading?
    • Erzeugung eines Threads
    • Identifizierung eines Threads
    • Gemeinsame Daten und Objekte
    • Threads und Exceptions

    Arbeiten mit Threads in Python
    • Das Konzept eines Threads
    • Eine Übersicht über das Threading-Modul
    • Erstellung eines neuen Threads in Python
    • Synchronisierung von Threads
    • Multithread-Prioritätswarteschlange

    Verwendung der with-Anweisung in Threads
    • Context Management
    • Die with-Anweisung bei gleichzeitiger Programmierung

    Gleichzeitige Webanforderungen
    • Die Grundlagen von Webanfragen
    • Das Modul requests
    • Gleichzeitige Webanforderungen
    • Das Problem der Zeitüberschreitung
    • Gute Praktiken bei der Erstellung von Webanfragen

    Arbeiten mit Prozessen in Python
    • Das Konzept eines Prozesses
    • Eine Übersicht über das Multiprozessor-Modul
    • Interprozesskommunikation

    Reduction Operators in Prozessen
    • Das Konzept der Reduktionsoperatoren
    • Beispielimplementierung in Python
    • Reale Anwendungen von gleichzeitigen Reduktionsoperatoren

    Parallele Bildverarbeitung
    • Grundlagen der Bildverarbeitung
    • Anwendung der Parallelität auf die Bildverarbeitung
    • Gute parallelisierbare Bildverarbeitungspraktiken

    Einführung in die asynchrone Programmierung
    • Asynchron im Vergleich zu anderen Programmiermodellen
    • Eine schnelle Analogie
    • Ein Beispiel in Python

    Implementierung der asynchronen Programmierung in Python
    • Das Asyncio-Modul
    • Das Asyncio-Framework in Aktion
    • Concurrent.futures als Lösung zum Blockieren von Aufgaben

    Aufbau von Kommunikationskanälen mit Asyncio
    • Das Ökosystem der Kommunikationskanäle
    • Client-seitige Kommunikation mit aiohttp

    Deadlocks
    • Das Konzept des Deadlocks
    • Ansätze für Deadlock-Situationen
    • Das Konzept des Livelock

    Starvation (Hunger)
    • Zuteilung von Ressourcen mit dem Konzept des Hungers
    • Das Leser-Schriftsteller-Problem
    • Lösungen gegen Hunger

    Race Conditions (Rennbedingungen)
    • Das Konzept der Race Conditions
    • Simulation der Race Conditions in Python
    • Sperrung als Lösung für Race Conditions
    • Race Conditions im wirklichen Leben

    Die globale Interpretersperre (Global Interpreter Lock -> GIL)
    • Eine Einführung in das Global Interpreter Lock
    • Die mögliche Entfernung des GIL aus Python
    • Wie man mit dem GIL arbeitet

    Das Entwerfen von sperrenbasierten und mutexfreien gleichzeitigen Datenstrukturen
    • Lock-based (Sperrenbasierte) gleichzeitige Datenstrukturen in Python
    • Mutex-free (Mutexfreie) gleichzeitige Datenstrukturen in Python
    • Aufbauend auf einfachen Datenstrukturen

    Speichermodelle und Operationen für atomare Typen
    • Python-Speichermodell
    • Atomare Operationen in Python
    • Echtzeitfähigkeit (real-time) von Python

    Von Grund auf neue Erstellung des Servers
    • Von Grund auf neue Erstellung eines Servers
    • Low-Level-Netzwerkprogrammierung über das Socket-Modul
    • Erstellung eines Rechnerservers mit dem Socket-Modul
    • Aufbau eines nicht blockierenden Servers

    Test, Debugging und Planung gleichzeitiger Anwendungen
    • Das Testen, Debuggen und Planen gleichzeitiger Anwendungen
    • Technische Anforderungen
    • Planung mit APScheduler
    • Test und Parallelität in Python
    • Debuggen gleichzeitiger Programme


    Zielgruppen

    • Erfahrene Python Programmierer


    Preise und Termine

    offene Schulung
    Eine offene Schulung findet in einem unserer Schulungszentren statt.
    Dauer:4 Tage
    Preis:1.690,00 € zzgl. USt. pro Teilnehmer (2.011,10€ inkl. USt.)
    Seminarstandorte:
    Starttermine:
    (ortsabhängig)


    Unterlagen:zzgl.
    Verpflegung:zzgl.
    Prüfung/Zertifizierung:zzgl.
    Firmenschulung
    Eine Firmenschlung kann sowohl bei Ihnen vor Ort als auch in einem unserer Schulungszentren stattfinden.
    Dauer:4 Tage
    Preis ab:1.350,00 € zzgl. USt. pro Tag (1.606,50€ inkl. USt.)
    Schulungszentren:
    • Hamburg
    • Berlin
    • Frankfurt
    • München
    • Nürnberg
    • Düsseldorf
    • Wien
    Starttermin:individuelle Vereinbarung
    Unterlagen:zzgl.
    Verpflegung:zzgl.
    Prüfung/Zertifizierung:zzgl.

    Software

    python3, anaconda3, pip, pyenv, vscode



    Seminarsprache

    die Seminarsprache ist deutsch, sofern keine andere Angabe. Englisch ist in aller Regel machbar, andere Seminarsprachen sind möglich, fragen Sie bitte an.