Threads and Processes in Python (original) (raw)
Course Data
Course name: | Threads and Processes in Python |
---|---|
Course length: | 1 day |
Remote: | Yes |
Open course: | No |
In-house: | Yes |
Course ID: | TPE |
German course | here |
Course Finder
Find the right course for your needs..
Combining Topics
Company courses allow to assemble trainings combining topics from different courses.
Course Topics Overview as PDF
You can download our flyer. It has an overview of all our course topics.
Motivation¶
Threads allow the simultaneous execution of several program paths. This opens new possibilities for program development. On the other hand, programs become more complex. Python uses the native thread implementation of the operating system and offers a unified API therefore offers platform-impendent threaded programming.
Course content¶
Thread Basics¶
The possibilities for threads in Python are shown. An examples is used to demonstrate how the modulethreading works.
GIL¶
Python has a so called General Interpreter Lock (GIL) that prevents several threads to run in real parallel on multi-CPU hardware. The implications of the GIL on programming are covered.
Thread Synchronization¶
Synchronization of threads is a important part of thread programming. Random manipulations of data has to be avoided when two threads access the same data at the same time. To achieve this data need to be locked by one thread providing exclusive access for this period of time.
Examples are used to explain the principles of locking. Special focus is put on so called dead-lock situations where threads block each other from executing and bring the program to a halt.
Processes¶
Python provides several ways to launch and access external processes. These ways are introduced with examples.
Combination of Threads and Processes¶
The combination of threads and processes allows to run programs in parallel using the advantages of multi-processor machines possibly gaining speedups. An example is used to demonstrate the effect of such combinations.
Exercises¶
The participants can follow all steps directly on their computers. There are exercises at the end of each unit providing ample opportunity to apply the freshly learned knowledge.
Course Material¶
Every participant receives comprehensive materials in PDF format that cover the whole course content as well as all source code.