关于python:Python多任务编程进程等待

过程期待目标:

主过程会期待所有的子过程执行实现当前再退出。

指标:

主过程退出同时销毁子过程

解决办法:

1.把子过程设置成为守护主过程,主过程退出子过程间接销毁

通过sub_process.daemon = True实现

import multiprocessing
import time


def task():
    while True:
        print("waiting...")
        time.sleep(1)
        
# 规范python写法,间接执行的模块,须要加上判断是否是主模块的代码
if __name__ == '__main__':
    # 创立子过程
    sub_process = multiprocessing.Process(target=task)
    
    # 把子过程设置成为守护主过程,当前主过程退出子过程间接销毁
    sub_process.daemon = True
    
    sub_process.start()
    # 主过程延时5秒钟
    time.sleep(5)
    print("over")
运行后果:

2.退出主过程之前,先让子过程进行销毁

sub_process.terminate()

import multiprocessing
import time


def task():
    # for i in range(10):
    while True:
        print("waiting...")
        time.sleep(1)


# 规范python写法,间接执行的模块,须要加上判断是否是主模块的代码
if __name__ == '__main__':

    # 创立子过程
    sub_process = multiprocessing.Process(target=task)
    sub_process.start()

    # 主过程延时10秒钟
    time.sleep(10)
    
    # 退出主过程之前,先让子过程进行销毁
    sub_process.terminate()
    print("over")

运行后果:

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理