К сожалению, в стандартном пакете Python есть нечто, называемое GIL, или глобальная блокировка интерпретатора. Это означает, что одновременно будет работать только один из ваших потоков. При этом простые многопоточные приложения возможны и довольно просты в написании. Модуль потоков содержит основные примитивы синхронизации, такие как мьютексы, семпахоры и т. Д.
Существует также потрясающее заявление, которое автоматизирует большинство аспектов использования блокировок. Для примера:
import threading
myLock = threading.Lock()
Затем использовать замок:
with myLock:
#lock has now been acquired
print "I have the lock and can now to fun stuff"
print "The lock has been released"