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.
The possibilities for threads in Python are shown. An examples is used to demonstrate how the module threading works.
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.
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.
Python provides several ways to launch and access external processes. These ways are introduced with examples.
The combination of threads and processes allows to run programs in parallel using the advantages of multi-processor machines possibily gaining speedups. An example is used to demonstrate the effect of such combinations.
0.5 days
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.
Every participant receives comprehensive printed materials that cover the whole course content as wells as a CD with all source codes and used software.
The module Network Programming with Python covers supplementary topics.
The course may be combined with the course Python for Nonprogrammers or Python for Programmers.
What customers say ...
Very good introduction to the programming language.
Matthias Enderle, freelancer programmer
more ...
Next Meeting of Leipzig Python User Group, July 8th, 2008
details ...
Python Summer Course July 21 - 25, 2008
details ...
EuroSciPy July 26/27, 2008
details ...
Booth at Chemnitzer Linux-Tage
details ...
Videos Workshop 2007 available
details ...
Python is programming language of 2007
details ...