Создайте Thread
, инициализируя параметры target
и args
с помощью функции для запуска и ее аргументов. Вызовите .start()
, чтобы запустить его, и .join()
, чтобы дождаться его завершения:
from threading import Thread
def foo(a,b,c):
print(a+ " | Process: {}".format(b))
d = b*c
print("test multiplication: {}".format(d))
print('')
threads = [Thread(target=foo,args=('Hello World',i+1,2)) for i in range(5)]
for thread in threads:
thread.start()
for thread in threads:
thread.join()
Выход:
Hello World | Process: 1
test multiplication: 2
Hello World | Process: 2
test multiplication: 4
Hello World | Process: 3
test multiplication: 6
Hello World | Process: 4
test multiplication: 8Hello World | Process: 5
test multiplication: 10
Как видно из моего вывода, строки могутзапутаться, если печать из разных потоков без сериализации.