在 python 中创建包含无限循环的进程

Creating processes that contains infinite loop in python

我想在不等待其他进程完成的情况下创建进程,但它们无法完成,因为它们处于无限循环中。

import time
from multiprocessing import Process


def child_function(param1, param2):
    print(str(param1 * param2))
    while True:
        print("doing some stuff")
        time.sleep(3)


def main_function():
    print("Initializing some things.")
    for _ in range(10):
        Process(target=child_function(3, 5)).start()


if __name__ == '__main__':
    main_function()

此代码只启动一个进程并等待它完成。我该怎么做?

编辑:评论答案工作正常,下面的答案也工作正常,但用于创建线程。谢谢大家。

试试这个 Python 模块 Threading

import time
import threading

def child_function(param1, param2):
    print(str(param1 * param2))
    while True:
        print("doing some stuff")
        time.sleep(3)

def main_function():
    print("Initializing some things.")
    for _ in range(10):
        x = threading.Thread(target=child_function, args=(3,5, ))
        x.start()

main_function()

解释:正如在评论中已经提到的,注意我们正在传递函数而不是通过线程构造函数调用它, 您也可以比较 Threading vs Multiprocessing 并使用最适合项目的那个。