Python multiprocessing Process(创建子进程)

原因:了解进程的运行活动,只能实例化子进程。

# coding=utf-8
import logging
import os
import time
from multiprocessing import Process

x1, x2 = 3, 7
logging.basicConfig(
    level=logging.INFO,
    format="%(asctime)s [*] %(processName)s %(message)s"
)


def run_add (x1, x2):
    time.sleep(5)
    logging.info(f"子进程ID:{os.getpid()}")
    logging.info(f'x1 + x2 = {x1 + x2}')
    logging.info("----------the end------[*]")


if __name__ == '__main__':
    logging.info("--------starting-----[*]")
    p = Process(target=run_add, args=(x1, x2))
    p.daemon = True  # 如果没有join()方法,当主进程退出时,它会尝试终止其所有守护进程的子进程。
    logging.info(f"子进程是否存活:{p.is_alive()}")
    p.start()
    logging.info(f"子进程是否存活:{p.is_alive()}")
    logging.info(f"子进程ID:{p.pid}")
    logging.info(f"子进程的身份验证密钥:{p.authkey}")
    logging.info(f"子进程系统对象的数字句柄:{p.sentinel}")
    # p.terminate()  # 终止子进程
    p.join()  # 等待子进程结束后再继续往下运行,通常用于进程间的同步。
    logging.info(f"主进程ID:{os.getpid()}")
    logging.info(f'x1 * x2 = {x1 * x2}', )
    logging.info("--------the end------[*]")

输出:

2019-10-03 14:43:41,554 [*] MainProcess --------starting-----[*]
2019-10-03 14:43:41,554 [*] MainProcess 子进程是否存活:False
2019-10-03 14:43:41,570 [*] MainProcess 子进程是否存活:True
2019-10-03 14:43:41,570 [*] MainProcess 子进程ID:3704
2019-10-03 14:43:41,570 [*] MainProcess 子进程的身份验证密钥:b'V_\xe3\xce7\xa3\xa2r0iy-\xd6\xcf)"\x84\x0c\xbd\x13h\xe8\x90\xb8\x064\xa9\x8c\x1c0\xc7%'
2019-10-03 14:43:41,570 [*] MainProcess 子进程系统对象的数字句柄:440
2019-10-03 14:43:46,639 [*] Process-1 子进程ID:3704
2019-10-03 14:43:46,639 [*] Process-1 x1 + x2 = 10
2019-10-03 14:43:46,639 [*] Process-1 ----------the end------[*]
2019-10-03 14:43:46,660 [*] MainProcess 主进程ID:7344
2019-10-03 14:43:46,660 [*] MainProcess x1 * x2 = 21
2019-10-03 14:43:46,660 [*] MainProcess --------the end------[*]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值