Nebenläufige Programme mit Python
|
|
|
- Elvira Bader
- vor 8 Jahren
- Abrufe
Transkript
1 Nebenläufige Programme mit Python PyCon DE 2012 Stefan Schwarzer, SSchwarzer.com Leipzig, Deutschland,
2 Nebenläufige Programme mit Python Stefan Schwarzer, 2 / 19 Überblick Wann ist Nebenläufigkeit sinnvoll? Grundproblem: Konkurrierende Zugriffe Lösungsansatz: mehrere Threads in einem Prozess Lösungsansatz: mehrere Prozesse Absicherung mit Lock Absicherung mit Queue Zusammenfassung
3 Nebenläufige Programme mit Python Stefan Schwarzer, 3 / 19 Wann ist Nebenläufigkeit sinnvoll? CPU-intensive Aufgaben wenn man sie auf mehrere Prozessorkerne verteilen kann Ein-/Ausgabe Während Daten gesendet und empfangen werden, können andere Programmteile weiterlaufen. Bedienbarkeit Während ein GUI-Programm eine Hintergrundaufgabe ausführt, soll es für den Nutzer bedienbar bleiben.
4 Nebenläufige Programme mit Python Stefan Schwarzer, 4 / 19 Begriffe Nebenläufigkeit / Concurrency: mehrere Ausführungsstränge aber nicht unbedingt gleichzeitige Ausführung (siehe folgender Punkt) Parallelism: gleichzeitige Ausführung von Code (beispielsweise auf verschiedenen CPU-Kernen) Atomare Operation / Atomic Operation: ein Vorgang, der nicht von einem anderen Thread oder Prozess unterbrochen werden kann Race Condition: Threads oder Prozesse kommen sich in die Quere.
5 Nebenläufige Programme mit Python Stefan Schwarzer, 5 / 19 Grundproblem Konkurrierender Zugriff auf Ressourcen muss abgesichert werden. Konkurrierend ist alles, was den Zustand einer Ressource ändert. Unterscheidung in lesende und schreibende Zugriffe ist mitunter irreführend. Beispiel: Lesender Zugriff auf eine Datei ändert den Dateizeiger. Ressourcen sind zum Beispiel: Einzelwerte und Datenstrukturen im Speicher Dateien Sockets Bildschirm/Fenster
6 Nebenläufige Programme mit Python Stefan Schwarzer, 6 / 19 Ansätze für Nebenläufigkeit in Python Multithreading Nebenläufigkeit innerhalb eines Prozesses Modul threading (in der Standardbibliothek) Ausführungsstränge können auf Daten im Speicher zugreifen. Bei CPython kommt das Global Interpreter Lock (GIL) zum Tragen. Das GIL verhindert die parallele Ausführung von Python-Code. Es wird bei I/O-Operationen freigegeben. Auch C-Erweiterungen können das GIL freigeben. Das GIL begrenzt also nur bei CPU-begrenzten Abläufen; bei I/O-begrenzten Abläufen ist es eher unproblematisch.
7 Nebenläufige Programme mit Python Stefan Schwarzer, 7 / 19 Ansätze für Nebenläufigkeit in Python Multiprocessing Nebenläufigkeit zwischen verschiedenen Prozessen Modul multiprocessing (in der Standardbibliothek) Datenaustausch zwischen Prozessen über Nachrichten oder über Shared Memory Bei Austausch von Nachrichten müssen diese serialisiert werden (in Python meist mit dem pickle-modul). Serialisierung ist Zusatzaufwand. Vorteil bei Multiprocessing: keine Einschränkungen der gleichzeitigen Ausführung, auch nicht bei CPU-Begrenzung Als Mischform sind natürlich auch mehrere Prozesse mit einem oder mehreren Threads möglich.
8 Nebenläufige Programme mit Python Stefan Schwarzer, 8 / 19 Multithreading-Beispiel Code ohne Absicherung gleichzeitiger Zugriffe import threading, time counter = 0 def count_without_lock(): global counter for i in xrange(10): time.sleep(0.001) counter += 1 # Make race condition more likely. threads = [] for i in xrange(100): thread = threading.thread(target=count_without_lock) thread.start() # Start thread. Don t confuse with run. threads.append(thread) for thread in threads: thread.join() # Wait until thread is finished. print "Total: %d" % counter
9 Nebenläufige Programme mit Python Stefan Schwarzer, 9 / 19 Multithreading-Beispiel Ausgabe ohne Absicherung gleichzeitiger Zugriffe $ python race_condition.py Total: 976 $ python race_condition.py Total: 970 $ python race_condition.py Total: 981 $ python race_condition.py Total: 943 $ python race_condition.py Total: 996 $ python race_condition.py Total: 884
10 Nebenläufige Programme mit Python Stefan Schwarzer, 10 / 19 Multithreading-Beispiel Erklärung Race Condition bei gleichzeitigen Zugriffen Thread 2 liest noch den früheren Wert von counter, da Thread 1 den Wert noch nicht gespeichert hat.
11 Multithreading-Beispiel Code mit Absicherung gleichzeitiger Zugriffe import threading, time counter = 0 lock = threading.lock() def count_with_lock(): global counter for i in xrange(10): time.sleep(0.001) with lock: counter += 1 threads = [] for i in xrange(100): thread = threading.thread(target=count_with_lock) thread.start() threads.append(thread)... Nebenläufige Programme mit Python Stefan Schwarzer, [email protected] 11 / 19
12 Nebenläufige Programme mit Python Stefan Schwarzer, 12 / 19 Multithreading mit Queue Schema für das folgende Beispiel Prinzip: put und get sind atomare Operationen.
13 Nebenläufige Programme mit Python Stefan Schwarzer, 13 / 19 Multithreading mit Queue Vorspann #! /usr/bin/env python2 import logging, Queue, random, threading, time logging.basicconfig(level=logging.info, format="%(message)s") logger = logging.getlogger("queue_example") WORKER_COUNT = 10 JOB_COUNT = 100 STOP_JOB = object() job_queue = Queue.Queue() class Job(object): def init (self, number): self.number = number
14 Nebenläufige Programme mit Python Stefan Schwarzer, 14 / 19 Multithreading mit Queue Worker-Thread class Worker(threading.Thread): def run(self): while True: job = job_queue.get(block=true) if job is STOP_JOB: break self.do_job(job) def do_job(self, job): # Wait between 0 and 0.01 seconds. time.sleep(random.random() / 100.0) # Atomic output logger.info("job number %d" % job.number)
15 Multithreading mit Queue Erzeugen und Verarbeiten von Jobs def main(): workers = [] # Start workers. for i in xrange(worker_count): worker = Worker() worker.start() workers.append(worker) # Assign jobs to workers. for i in xrange(job_count): job_queue.put(job(i)) # Schedule stopping of workers. for i in xrange(worker_count): job_queue.put(stop_job) # Wait for workers to finish. for worker in workers: worker.join() main() Nebenläufige Programme mit Python Stefan Schwarzer, [email protected] 15 / 19
16 Nebenläufige Programme mit Python Stefan Schwarzer, 16 / 19 Multithreading mit Queue Ausgabe Job number 0 Job number 5 Job number 7 Job number 10 Job number 2 Job number 1 Job number 6... Job number 93 Job number 99 Job number 91 Job number 95 Job number 92 Job number 98 Job number 97
17 Nebenläufige Programme mit Python Stefan Schwarzer, 17 / 19 Zusammenfassung Nebenläufige Programme haben ihre Tücken, auch wenn nur ein Prozessor dabei genutzt wird. Konkurrierende Zugriffe müssen abgesichert werden... unabhängig davon, ob das Programm ohne Absicherung richtig zu laufen scheint oder nicht! Atomar aussehende Anweisungen sind es nicht unbedingt. Faustregeln: Verwende threading bei I/O-begrenzten Aufgaben. Verwende multiprocessing bei CPU-begrenzten Aufgaben. Konkurrierende Zugriffe können zum Beispiel mit Locks oder Queues abgesichert werden. Dieser Vortrag konnte das Thema Nebenläufigkeit leider nur anreißen.
18 Nebenläufige Programme mit Python Stefan Schwarzer, 18 / 19 Links Module threading, Queue, multiprocessing Dr. Dobb s Parallel Computing (Übersichts-Seite) (Einführung) High-Level Concurrency (sehr empfehlenswert) bcsedinburgh JeepersGPars.pdf Design-Empfehlungen Active Object Pattern
19 Nebenläufige Programme mit Python Stefan Schwarzer, 19 / 19 Danke für die Aufmerksamkeit! :-) Fragen? Anmerkungen? Diskussion? [email protected]
Nebenläufige Programme mit Python
Nebenläufige Programme mit Python Chemnitzer Linuxtage 2013 Stefan Schwarzer, SSchwarzer.com [email protected] Chemnitz, Deutschland, 2013-03-17 Nebenläufige Programme mit Python Stefan Schwarzer, [email protected]
Lehrstuhl für Datenverarbeitung. Technische Universität München. Leistungskurs C++ Multithreading
Leistungskurs C++ Multithreading Threading mit Qt Plattformübergreifende Thread-Klasse Sehr einfach zu benutzen Leider etwas schlecht dokumentiert Leistungskurs C++ 2 QThread Plattformübergreifende Thread-Klasse
Memory Models Frederik Zipp
Memory Models Frederik Zipp Seminar: Programmiersprachen für Parallele Programmierung (SS 2010) Fakultät für Informatik - IPD SNELTING LEHRSTUHL PROGRAMMIERPARADIGMEN 1
Profiling in Python. Seminar: Effiziente Programmierung. Jan Pohlmann. November Jan Pohlmann Profiling in Python November / 32
Profiling in Python Seminar: Effiziente Programmierung Jan Pohlmann November 2017 Jan Pohlmann Profiling in Python November 2017 1 / 32 Gliederung 1 Grundlagen Profiling Was ist das Ziele und Herausforderungen
Grundlagen. Felix Döring, Felix Wittwer 24. April Python-Kurs
Grundlagen Felix Döring, Felix Wittwer 24. April 2017 Python-Kurs Gliederung 1. Scriptcharakter 2. Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren 3.
Automatisiertes Testen mit dem Doctest-Modul
Automatisiertes Testen mit dem Doctest-Modul Chemnitzer Linuxtage 2009 Stefan Schwarzer, SSchwarzer.com [email protected] Chemnitz, Germany, 2009-03-15 Automatisiertes Testen mit dem Doctest-Modul Stefan
Lehrstuhl für Datenverarbeitung. Technische Universität München. Leistungskurs C++ Multithreading
Leistungskurs C++ Multithreading Threading mit Qt Plattformübergreifende Thread-Klasse Sehr einfach zu benutzen Leider etwas schlecht dokumentiert Leistungskurs C++ 2 QThread Plattformübergreifende Thread-Klasse
Parallele Prozesse. Prozeß wartet
Parallele Prozesse B-66 Prozeß: Ausführung eines Programmes in seinem Adressraum (zugeordneter Speicher) Parallele Prozesse: gleichzeitig auf mehreren Prozessoren laufende Prozesse p1 p2 verzahnte Prozesse:
Pyro - Python Remote Objects
13. Mai 2012 Pyro - Python Remote Objects 1 Pyro - Python Remote Objects Oliver Burger DHBW Stuttgart - Campus Horb 13. Mai 2012 Was ist Pyro? 13. Mai 2012 Pyro - Python Remote Objects 2 13. Mai 2012 Pyro
Java Concurrency Utilities
Java Concurrency Utilities Java unterstützt seit Java 1.0 Multithreading Java unterstützt das Monitorkonzept mittels der Schlüsselworte synchronized und volatile sowie den java.lang.object Methoden wait(),
Programmieren in Python
10. Iteratoren und Generatoren Albert-Ludwigs-Universität Freiburg KI-Praktikum, Sommersemester 2009 Iteratoren und Generatoren Überblick über diese Lektion: Iteratoren Generatoren Generator Comprehensions
Die Anweisungen zweier Prozesse werden parallel bearbeitet, wenn die Anweisungen unabhängig voneinander zur gleichen Zeit ausgeführt werden.
7 Parallelität und Nebenläufigkeit Mehrere Prozessen oder Threads Parallelität Die Anweisungen zweier Prozesse werden parallel bearbeitet, wenn die Anweisungen unabhängig voneinander zur gleichen Zeit
Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard
Systeme I: Betriebssysteme Kapitel 4 Prozesse Wolfram Burgard Version 18.11.2015 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, Historische Entwicklung, unterschiedliche Arten von Betriebssystemen
Verteilte Systeme. Nebenläufigkeit. Prof. Dr. Oliver Haase
Verteilte Systeme Nebenläufigkeit Prof. Dr. Oliver Haase 1 Arten der Nebenläufigkeit 1-Prozessor(kern)-System quasiparallele Ausführung erhöht Interaktivität durch Umschalten zwischen Threads kann Parallelitätsgrad
Betriebssysteme G: Parallele Prozesse (Teil A: Grundlagen)
Betriebssysteme G: Parallele Prozesse (Teil A: Grundlagen) 1 Prozesse Bei Betriebssystemen stoßen wir des öfteren auf den Begriff Prozess als wahrscheinlich am häufigsten verwendeter und am unklarsten
Programmieren in Lua
Roberto lerusalimschy Programmieren in Lua 3. Auflage Open Source Press Inhaltsverzeichnis Vorwort 13 I Die Sprache 21 1 Einführung 23 1.1 Chunks 24 1.2 Einige lexikalische Konventionen 26 1.3 Globale
Betriebssysteme KU - Einführungstutorium
Betriebssysteme KU - Einführungstutorium SWEB-Tutoren 5. Oktober 2008 1 Grundlagen 2 SWEB 3 Kernel Basics Memory Management Details 4 Userspace 5 Hacking 6 Beispiele 7 Assignment 0 Aufgaben eines Betriebssystems
C++ atomics, Boost.Lookfree, Hazard-Pointers und die Thread-Hölle
C++ atomics, Boost.Lookfree, Hazard-Pointers und die Thread-Hölle Aachen, den 14. Januar 2016 Max Neunhöffer www.arangodb.com Unser Problem heute Es war einmal... eine multi-threaded Applikation, mit einer
Verteilte Systeme CS5001
Verteilte Systeme CS5001 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Client-Server-Anwendungen: Vom passiven (shared state) Monitor zum aktiven Monitor Monitor (Hoare, Brinch-Hansen,
Objektorientiertes Programmieren II
Objektorientiertes Programmieren II Symbolische Programmiersprache. Benjamin Roth Folien von Annemarie Friedrich Wintersemester 2017/2018 Centrum für Informations- und Sprachverarbeitung LMU München 1
Programmieren in Python
10. Iteratoren und Generatoren Albert-Ludwigs-Universität Freiburg Handlungsplanungs-Praktikum Wintersemester 2010/2011 Iteratoren und Generatoren Überblick über diese Lektion: Iteratoren Generatoren Generator
Prozesszustände (1a)
Prozesszustände (1a) NOT EXISTING DELETED CREATED Meta-Zustand (Theoretische Bedeutung) Prozesszustände Multiuser Umfeld (1c) Hintergrund-Prozess - der Prozess startet im Hintergrund - my-commandbin &
Nebenläufigkeit und Asynchronizität in eingebetteten Systemen. Klaus Kusche, September 2012
Nebenläufigkeit und Asynchronizität in eingebetteten Systemen Klaus Kusche, September 2012 Inhalt Definitionen und Begriffe Strategien zur Parallelisierung Kommunikation & Synchronisation Hardware-Voraussetzungen
Inhaltsverzeichnis. Carsten Vogt. Nebenläufige Programmierung. Ein Arbeitsbuch mit UNIX/Linux und Java ISBN:
Inhaltsverzeichnis Carsten Vogt Nebenläufige Programmierung Ein Arbeitsbuch mit UNIX/Linux und Java ISBN: 978-3-446-42755-6 Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-42755-6
Betriebssysteme. Vorlesung im Herbstsemester 2010 Universität Mannheim. Kapitel 6: Speicherbasierte Prozessinteraktion
Betriebssysteme Vorlesung im Herbstsemester 2010 Universität Mannheim Kapitel 6: Speicherbasierte Prozessinteraktion Felix C. Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung
OpenMP - Threading- Spracherweiterung für C/C++ Matthias Klein, Michael Pötz Systemprogrammierung 15. Juni 2009
- Threading- Spracherweiterung für C/C++ Matthias Klein, Michael Pötz Systemprogrammierung 15. Juni 2009 Grundlagen der Parallelen Programmierung Hardware Threads vs. Prozesse Kritische Abschnitte Lange
Programmieren 2 12 Netzwerke
Programmieren 2 12 Netzwerke Bachelor Medieninformatik Sommersemester 2015 Dipl.-Inform. Ilse Schmiedecke [email protected] 1 Motivation Datenaustausch zwischen Programmen Spielstand Chat
parallele Prozesse auf sequenziellen Prozessoren Ein Process ist ein typisches Programm, mit eigenem Addressraum im Speicher.
Threads parallele Prozesse auf sequenziellen Prozessoren Prozesse und Threads Es gibt zwei unterschiedliche Programme: Ein Process ist ein typisches Programm, mit eigenem Addressraum im Speicher. Ein Thread
Übung zu Grundlagen der Betriebssysteme. 10. Übung 18.12.2012
Übung zu Grundlagen der Betriebssysteme 10. Übung 18.12.2012 Aufgabe 1 a) Was versteht man unter einem kritischen Abschnitt oder kritischen Gebiet (critical area)? b) Welche Aufgabe hat ein Semaphor? c)
Was machen wir heute? Betriebssysteme Tutorium 3. Organisatorisches. Prozesskontrollblock (PCB) Programmieraufgaben. Frage 3.1.a
Was machen wir heute? Betriebssysteme Tutorium 3 Philipp Kirchhofer [email protected] http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität Karlsruhe (TH) 1
Betriebssysteme. G: Parallele Prozesse. (Teil B: Klassische Problemstellungen, Mutual Exclusion, kritische Regionen)
Betriebssysteme G: Parallele Prozesse (Teil B: Klassische Problemstellungen, Mutual Exclusion, kritische Regionen) 1 Allgemeine Synchronisationsprobleme Wir verstehen ein BS als eine Menge von parallel
Debugging mit Python
Debugging mit Python PyCon DE 2012 Stefan Schwarzer, SSchwarzer.com [email protected] Leipzig, Deutschland, 2012-10-31 Debugging mit Python Stefan Schwarzer, [email protected] 2 / 23 Überblick Print-Anweisungen
Thread-Synchronisation in in Java. Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen
Thread-Synchronisation in in Java Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen Die Klasse Thread Die Die Klasse Thread gehört zur zur Standardbibliothek von von
Apriori Algortihmus. Endpräsentation. Stefan George, Felix Leupold
Apriori Algortihmus Endpräsentation Stefan George, Felix Leupold Gliederung 2 Wiederholung Apriori Erweiterung: Parallelisierung Parallele Programmierung in Python Parallelisierungszenarien Implementierung
A Kompilieren des Kernels... 247. B Lineare Listen in Linux... 251. C Glossar... 257. Interessante WWW-Adressen... 277. Literaturverzeichnis...
1 Einführung................................................ 1 1.1 Was ist ein Betriebssystem?............................... 1 1.1.1 Betriebssystemkern................................ 2 1.1.2 Systemmodule....................................
Multi-threaded Programming with Cilk
Multi-threaded Programming with Cilk Hobli Taffame Institut für Informatik Ruprecht-Karls Universität Heidelberg 3. Juli 2013 1 / 27 Inhaltsverzeichnis 1 Einleitung Warum Multithreading? Ziele 2 Was ist
Threads. Foliensatz 8: Threads Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2015
Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: STATS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)
SBC ButtonMatrix Bedienungsanleitung. Verwendung mit einem Arduino Schritt 1 Anschließen der Matrix
Sehr geehrter Kunde, SBC ButtonMatrix Bedienungsanleitung MCU Extension 4x4 16-Key vielen Dank, dass Sie sich für unser Produktentschieden haben. Im Folgenden haben wir aufgelistet, was bei der Inbetriebnahme
Implementierung eines Baumes (in Python)
Satz: in maximal vollständiger binärer aum der Höhe h enthält 2 h-1 lätter und 2 h -1 Knoten und 2 h-1-1 inneren Knoten. eweis: 1. nduktionsanfang: h= 1 Der aum besteht nur aus der Wurzel, die auch das
Mehrprozessorarchitekturen
Mehrprozessorarchitekturen (SMP, UMA/NUMA, Cluster) Arian Bär 12.07.2004 12.07.2004 Arian Bär 1 Gliederung 1. Einleitung 2. Symmetrische Multiprozessoren (SMP) Allgemeines Architektur 3. Speicherarchitekturen
Cell and Larrabee Microarchitecture
Cell and Larrabee Microarchitecture Benjamin Grund Dominik Wolfert Universität Erlangen-Nürnberg 1 Übersicht Einleitung Herkömmliche Prozessorarchitekturen Motivation für Entwicklung neuer Architekturen
Überraschungen und Grundlagen bei der nebenläufigen Programmierung in Java
Überraschungen und Grundlagen bei der nebenläufigen Programmierung in Java JUG Karlsruhe 16. Oktober 2013 Referent: Christian Kumpe Inhalt des Vortrags Was zeigt dieser Vortrag? Ein einfaches Beispiel
Ergebnisgröße Datentyp Zähldaten Zeitgewichtet Bezeichner. Lagerbestand random_variable Ja rv_whcontent
Schrittfolge zur Simulation der Aufgabe Lagerhaltung Lager 3 1 1. Schritt: Definition der Ergebnisgrößen Ergebnisgröße Datentyp Zähldaten Zeitgewichtet Bezeichner Produktionsrate in Stück random_variable
Nachtrag: Vergleich der Implementierungen von Stack
Nachtrag: Vergleich der Implementierungen von Stack In der letzten Vorlesung hatten wir zwei Implementierung der Klasse Stack: eine Implementierung als Liste (Array): liststack eine Implementierung als
Parallele und verteilte Anwendungen in Java
Rainer Oechsle Parallele und verteilte Anwendungen in Java ISBN-10: 3-446-40714-6 ISBN-13: 978-3-446-40714-5 Leseprobe Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-40714-5
Beispiel Klausuraufgaben
Beispiel Klausuraufgaben HINWEIS: In diesem Dokument befinden sich mehrere Aufgaben. Es ist keine Beispielklausur. In der Klausur werden nur ca. 2 Aufgaben zu meinen Themengebieten (Nebenläufigkeit, Visuelle
Nicht-blockierende Synchronisation für Echtzeitsysteme
Nicht-blockierende Synchronisation für Echtzeitsysteme Seminar Mobile Systeme Florian Schricker 15. März 2005 Seminarleiter: Prof. Dr. Dieter Zöbel 1 INHALTSVERZEICHNIS INHALTSVERZEICHNIS Inhaltsverzeichnis
OOP: Nebenläufigkeiten Threads. Dipl.-Inform. Arnold Willemer
OOP: Nebenläufigkeiten Threads Dipl.-Inform. Arnold Willemer [email protected] Schlafen für Profis Die C-64-Lösung kocht und blockiert den Prozessor while (!fertig) // nichts tun: busy waiting
Nebenläufige Programmierung I
Nebenläufige Programmierung I Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Piotr Kosiuczenko, Dirk Pattinson 07/03 Ziele 2 Grundlegende Begriffe der nebenläufigen Programmierung verstehen lernen
ChatServer. Unser Server
ChatServer Wir wollen einen universell verwendbaren Server programmieren, der die wichtigsten Funktionen eines Chat-Servers erfüllt: es soll ein 'Threaded TCP Server' sein Clients können sich mit Port
Lebenszyklus von Threads
Threads Umgangssprachlich Faden, Diskussionsfaden, Gewinde, Faser, Garn, roter Faden Threads ermöglichen Nebenläufigkeit (parallele Ausführung von Anwendungsteilen). Typisch für Threads ist,dass sie zu
Python 2. Vorlesung Computerlinguistische Techniken Alexander Koller. 28. Oktober 2014
Python 2! Vorlesung Computerlinguistische Techniken Alexander Koller! 28. Oktober 2014 Listen Sequenz von beliebigen Werten. Literale: [], [1,2,3], [ hallo, True, -5.0] Hinten an Liste anhängen: L.append(27)
Programmieren in Python
Iteratoren und Generatoren Programmieren in Python 10. Iteratoren und Generatoren Malte Helmert Albert-Ludwigs-Universität Freiburg Überblick über diese Lektion: Iteratoren Generatoren Generator Comprehensions
Single- und Multitasking
Single- und Multitasking Peter B. Ladkin [email protected] Peter B. Ladkin Command Interpreter (ComInt) läuft wartet auf Tastatur-Eingabe "liest" (parst) die Eingabe (für Prog-Name) Macht "Lookup"
Nebenläufige Programmierung in Java: Threads
Nebenläufige Programmierung in Java: Threads Wahlpflicht: Fortgeschrittene Programmierung in Java Jan Henke HAW Hamburg 10. Juni 2011 J. Henke (HAW) Threads 10. Juni 2011 1 / 18 Gliederung 1 Grundlagen
Betriebssysteme Kapitel E : Prozesse
Betriebssysteme Kapitel E : Prozesse 1 Inhalt Prozesse Zustand eines Prozesses» Kontext» Kontextswitch Prozessbeschreibungsblock PCB Zustandsübergänge» Zustandsdiagramm 2 Hinweis Ein Programm(code) kann
LK-Baseboard für Raspberry Pi B+ / Pi 2
LK-Baseboard für Raspberry Pi B+ / Pi 2 Sehr geehrter Kunde, vielen Dank, dass Sie sich für unser Produkt entschieden haben. Im Folgenden haben wir aufgelistet, was bei der Inbetriebnahme zu beachten ist:
Nebenläufigkeit in Java. Prof. Dr. Margarita Esponda
Nebenläufigkeit in Java Prof. Dr. Margarita Esponda Gliederung der Vorlesung - Konzepte der Nebenläufigkeit -Threads in Java - Synchronisationsprobleme - Klassische Lösungen -Semaphoren - Monitore - Lebenszyklus
Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz
Systeme I: Betriebssysteme Kapitel 4 Prozesse Maren Bennewitz Version 21.11.2012 1 Begrüßung Heute ist Tag der offenen Tür Willkommen allen Schülerinnen und Schülern! 2 Testat nach Weihnachten Mittwoch
Ausnahmebehandlung in Java
Ausnahmebehandlung in Java class A { void foo() throws Help, SyntaxError {... class B extends A { void foo() throws Help { if (helpneeded()) throw new Help();... try {... catch (Help e) {... catch (Exception
Rainer Oechsle. Parallele und verteilte. Anwendungen in Java. 4., neu bearbeitete Auflage. Mit 165 Listings, 5 Tabellen und 71 HANSER
Rainer Oechsle Parallele und verteilte Anwendungen in Java 4., neu bearbeitete Auflage Mit 165 Listings, 5 Tabellen und 71 Bildern HANSER Inhalt 1 Einleitung 15 1.1 Parallelität, Nebenläufigkeit und Verteilung
Threads. Netzwerk - Programmierung. Alexander Sczyrba Jan Krüger
Netzwerk - Programmierung Threads Alexander Sczyrba [email protected] Jan Krüger [email protected] Übersicht Probleme mit fork Threads Perl threads API Shared Data Mutexes
Prozesse. Prozesse sind Programme. Prozesse können aus Unterprozessen bestehen. Prozesshierarchie Unterprozesse Threads
Threads Prozesse, Parallelität, Nebenläufigkeit, Threads, Erzeugung, Ausführung, Kommunikation, Interferenz, Kritischer Bereich, Deadlock, Synchronisation. Prozesse Prozesse sind Programme mehrere Prozesse
Prozesse and Threads WS 09/10 IAIK 1
Prozesse and Threads WS 09/10 IAIK 1 Prozesse Programm in Ausführung Mit einem Prozess verbunden: Adressraum Folge von Speicherstellen auf die der Prozess zugreifen kann Enthält ausführbares Programm,
Funktionale und Objekt-Orientierte Programmierkonzepte
Funktionale und Objekt-Orientierte Programmierkonzepte Prof. Marc Fischlin, Wintersemester 15/16 Kapitel 17: GUI, Threads und verschachtelte Klassen 13. Oktober 2010 Dr.Marc Fischlin Kryptosicherheit 1
Nebenläufigkeit mit Java
Nebenläufigkeit mit Java Einheit 01: Einführung in das Java-Threadkonzept Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Organisatorisches Ziele, Aufbau und Inhalte Zielgruppe,
Celery Eine asynchrone Task Queue (nicht nur) für Django. Markus Zapke-Gründemann www.keimlink.de Leipzig Python User Group 12.10.
Celery Eine asynchrone Task Queue (nicht nur) für Django Markus Zapke-Gründemann www.keimlink.de Leipzig Python User Group 12.10.2010 Überblick Warum eine Task Queue? Celery Python Task Zeitgesteuerter
Fakultät für Informatik der Technischen Universität München. Kapitel 3. Nebenläufigkeit
Kapitel 3 Nebenläufigkeit 136 Inhalt Motivation Unterbrechungen (Interrupts) (Software-) Prozesse Threads Interprozesskommunikation (IPC) 137 Links: Literatur Maurice Herlihy, Nir Shavit, The Art of Multiprocessor
Grundlagen zur nebenläufigen Programmierung in Java
Grundlagen zur nebenläufigen Programmierung in Java Karlsruher Entwicklertag 2013 5. Juni 2013 Referent: Christian Kumpe Inhalt des Vortrags Was zeigt dieser Vortrag? Ein einfaches Beispiel mit allerlei
