在进程中运行线程



是否可以在函数内运行线程(该函数将作为过程运行(,如果多少?

这是一个示例:

def process_one():
    def one():
        while True:
            print("one")
            time.sleep(1)
    def two():
        while True:
            print("two")
            time.sleep(1)
    def three():
        while True:
            print("three")
            time.sleep(1)
    a = Thread(target=one)
    b = Thread(target=two)
    c = Thread(target=three)
    a.start()
    b.start()
    c.start()

if __name__ == '__main__':
    p1 = Process(target=process_one)
    p1.start()

是的,这是可能的。

您甚至可以通过启动它并使用任务管理器/活动监视器/系统监视器来测试此示例。您应该看到一个父母和一个孩子的过程。儿童进程应该开始3个线程。

至于可以启动多少个线程的问题,这实际上取决于您的用例。

给定示例上的几个提示:

  1. 在此示例中,您必须在至少线程上使用join。如果您不这样做,儿童过程很快完成,
  2. 由于在儿童过程中开始线程,因此您必须注意如何处理线程生命周期,
  3. 由于您可以杀死父母,因此子进程继续生存,因此这是要注意的另一件事。

可能还有其他角色案例,但是如果您决定使用流程和线程并发并进行同时进行彻底研究。

相关内容

  • 没有找到相关文章

最新更新