Этого простой пример должен, чтобы вы начали, в этом случае есть два в то время как петля и time.sleep(seconds)
используются для имитации некоторой работы
import threading
import time
def func_1():
i = 0
while i<5:
i += 1
time.sleep(1.5) # Do some work for 1.5 seconds
print 'func_1'
def func_2():
i = 0
while i<5:
i += 1
time.sleep(0.5) # Do some work for 0.5 seconds
print 'func_2'
thread1 = threading.Thread(target=func_1)
thread1.start()
thread2 = threading.Thread(target=func_2)
thread2.start()
производит:
func_2 #0.5 seconds elapsed
func_2 #1.0 seconds elapsed
func_1 #1.5 seconds elapsed finally func_1 :)
func_2 #1.5 threading is not mutithreading! ;)
func_2 #2.0 seconds elapsed
func_2 #2.5 seconds elapsed and since variable i is 5 func_2 is no more :(
func_1 #3.0 seconds elapsed
func_1 #4.5 seconds elapsed
func_1 #6.0 seconds elapsed
func_1 #7.5 seconds elapsed
Edit:
То, что я имел в виду, говоря threading is not mutithreading! ;)
, состоит в том, что если вы случайно считаете, что и func_1
, и func_2
выполнены con в настоящее время 1.5 seconds
не Правда, как потоки выполняются в том же пространстве памяти, но если вы используете multiprocessing
они имеют отдельные пространства памяти и будет работать одновременно
Наконец, В вашем случае вы должны использовать threading
как его более подходящим для них тип задач
Похоже, вы хотите использовать очереди сообщений? –
Вы можете захотеть «python threading» google здесь. –
Речь идет о 'threads'. – jramirez