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
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. |
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: |
|
Starttermin: | individuelle Vereinbarung |
Unterlagen: | zzgl. |
Verpflegung: | zzgl. |
Prüfung/Zertifizierung: | zzgl. |
Software
python3, anaconda3, pip, pyenv, vscode
Verwandte Schulungen
Python 3.x für Unix-/Linux-Administratoren II - SchulungPython 3.x - Algorithmen und Datenstrukturen - SchulungPython 3.8 - Clean Code - Schulung
Seminarsprache
die Seminarsprache ist deutsch, sofern keine andere Angabe. Englisch ist in aller Regel machbar, andere Seminarsprachen sind möglich, fragen Sie bitte an.