Как одновременно запустить несколько бесконечных циклов в Python?
Нужно одновременно выполнить несколько бесконечных циклов, но программа выполняет только первый поток с первым while True.
import time
from threading import Thread
class Thread1(Thread):
while True:
time.sleep(2)
for i in range(1):
print("Hello")
class Thread2(Thread):
while True:
time.sleep(4)
for i in range(1):
print("Привет")
class Thread3(Thread):
while True:
time.sleep(6)
for i in range(1):
print("Здравствуйте")
t1 = Thread1()
t1.start()
t2 = Thread2()
t2.start()
t3 = Thread3()
t3.start()
Ответы (1 шт):
Автор решения: wchistow
→ Ссылка
Не надо писать свои классы, наследующие от threading.Thread. Ваш код должен выглядеть так:
import time
from threading import Thread
# Пишем функции для каждого потока
def thread1_func():
while True:
time.sleep(2)
for i in range(1):
print("Hello")
def thread2_func():
while True:
time.sleep(4)
for i in range(1):
print("Привет")
def thread3_func():
while True:
time.sleep(6)
for i in range(1):
print("Здравствуйте")
t1 = Thread(target=thread1_func) # В именованный аргумент `target` передаём функцию,
t1.start() # которая будет выполнятся в этом потоке.
t2 = Thread(target=thread2_func)
t2.start()
t3 = Thread(target=thread3_func)
t3.start()