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

Ответы (0 шт):