python退出整个程序_如何在多处理程序中退出整个应用程序

如果流程函数(例如submit_process)有一个循环,可以在其中测试条件,则可以使用mp.事件为此:import multiprocessing as mp

import time

import logging

logger = mp.log_to_stderr(logging.DEBUG)

logger.setLevel(logging.INFO)

def submit_process(i, sig):

logger.info("submit_process")

while True:

#Here is some codes trying to change the value of the variable sig

if i == 0:

time.sleep(2)

sig.set()

logger.info('SETTING sig')

time.sleep(1)

if sig.is_set():

#Here i want to exit the entire program instead of the single thread only.

#exit(0)

logger.info('sig is set!')

break

else:

logger.info('sig is NOT set!')

process_list = []

logger.info("OK")

sig = mp.Event()

for i in range(3):

process = mp.Process(target = submit_process, args = (i, sig, ))

process.start()

process_list.append(process)

for i in range( len(process_list) ):

process_list[i].join()

收益率

^{pr2}$

在这里,过程1设置mp.事件公司名称:[INFO/Process-1] SETTING sig

在这里,进程识别出sig已被设置并脱离while循环:[INFO/Process-3] sig is set!

[INFO/Process-3] process shutting down

[INFO/Process-3] process exiting with exitcode 0

[INFO/Process-2] sig is set!

[INFO/Process-2] process shutting down

[INFO/Process-2] process exiting with exitcode 0

[INFO/Process-1] sig is set!

[INFO/Process-1] process shutting down

[INFO/Process-1] process exiting with exitcode 0

[INFO/MainProcess] process shutting down

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值