python - 2 цикла while true одновременно
Как одновременно запустить 2 связанных цикла while true? Первый цикл - отвечает за бота, а второй - за небольшую консоль, команды из которой должны влиять на первый цикл.
Ответы (1 шт):
Автор решения: vadim vaduxa
→ Ссылка
import multiprocessing, queue, time, random
def loop_1(q, e):
while True:
try:
i = q.get_nowait()
except queue.Empty:
print(None)
else:
print(i)
if i == 3:
e.set()
break
time.sleep(random.randint(1, 20) / 10)
def loop_2(q, e):
while True:
q.put_nowait(random.randint(1, 5))
if e.is_set():
break
time.sleep(random.randint(1, 20) / 10)
def main(q, e):
multiprocessing.Process(target=loop_1, args=[q, e]).start()
multiprocessing.Process(target=loop_2, args=[q, e]).start()
if __name__ == '__main__':
q = multiprocessing.Queue()
e = multiprocessing.Event()
main(q, e)
out:
None
4
2
None
4
3
Process finished with exit code 0