Although python supports both  and  models the support for threads has a following warning:
 CPython implementation detail: Due to the Global Interpreter Lock, in CPython only one thread can execute Python code at once.
It took me a while to understand what this actualy means. This is a serious limitation for a multithreaded programming and it still exists even in the latest python version 3.x . To better understanding what this means this is an example from one of the links below I found:
The GIL enforces Python's requirement that only a single bytecode operation is executed at a time.
- Google search about GIL has many link, I personaly found these very useful http://www.grouplens.org/node/244
- These below are a little longer to read but they talk about the problem and around it on a very low level http://www.jeffknupp.com/blog/2012/03/31/pythons-hardest-problem/
The section "Write multithreaded or multiprocess code"