Multiprocessing не разносит функции в разные потоки
Есть 2 функции. В моем понимании multiprocessing должен создавать два потока, и выполнять эти функции отдельно, но при этом выполняется только одна из них (первая функция). Что я не так делаю? (Если немного подробнее, то у меня есть одна функция - она бесконечная, с использованием while True. Я хочу сделать так, чтобы она работала с ботом телеграмма, при этом чтоб бот работал нормально (т.к. можно было бы сделать это с помощью asyncio, но тогда бот отвечал бы только после asyncio.sleep(), а он далеко не везде))
Код:
def func1():
print("Started Function 1")
while True:
print('Hello1')
time.sleep(2)
def func2():
print("Started Function 2")
while True:
print('Hello2')
time.sleep(2)
def main(func):
return func()
if __name__ == '__main__':
tasks = [func1, func2]
procs = [mp.Process(target=main, args=(i,)) for i in tasks]
for proc in procs:
proc.start()
for proc in procs:
proc.join()
Output:
Started Function 1
Hello1
Hello1
Hello1