zoukankan      html  css  js  c++  java
  • 使用multiprocessing模块创建进程

    #_author:来童星
    #date:2019/12/17
    from multiprocessing import Process
    import time
    import os
    #两个子进程将会调用的两个方法
    def child_1(i):
    print('子进程(%s)开始执行,父进程为(%s)'%(os.getpid(),os.getppid()))
    t_start=time.time()
    time.sleep(i)
    t_end=time.time()
    print("子进程(%s)执行时间为'%0.2f'秒"%(os.getpgid(),t_end-t_start))
    def child_2(i):
    print('子进程(%s)开始执行,父进程为(%s)'%(os.getpid(),os.getppid()))
    t_start=time.time()
    time.sleep(i)
    t_end=time.time()
    print("子进程(%s)执行时间为'%0.2f'秒"%(os.getpgid(),t_end-t_start))
    if __name__=='__main__':
    print('-------父进程开始执行-------')
    print('父进程PID:%s'%os.getppid())
    p1=Process(target=child_1,args=(1,))# 实例化进程p1
    p2=Process(target=child_2,args=(2,))# 实例化进程p2
    p1.start()
    p2.start()
    # 同时父进程仍然往下执行,如果p2进程还在执行,将会返回True
    print("p1.is_alive=%s"%p1.is_alive())
    print("p2.is_alive=%s"%p2.is_alive())
    #输出p1,p2进程的别名和pid
    print("p1.name=%s"%p1.name)
    print('p1.pid=%s'%p1.pid)
    print("p2.name=%s"%p2.name)
    print('p2.pid=%s'%p2.pid)
    print('-------等待子进程-------')
    p1.join()
    p2.join()
    print('-------父进程执行结束-------')
    运行结果:
    -------父进程开始执行-------
    父进程PID:5580
    p1.is_alive=True
    p2.is_alive=True
    p1.name=Process-1
    p1.pid=2508
    p2.name=Process-2
    p2.pid=10164
    -------等待子进程-------
    -------父进程执行结束-------


  • 相关阅读:
    最短路最基本算法———Floyd算法
    最短路最基本算法———Floyd算法
    浅谈最基础的三种背包问题
    浅谈最基础的三种背包问题
    Java中的反射机制Reflection
    Linux下抓包命令tcpdump的使用
    SSRF(服务端请求伪造)漏洞
    Cookie、Session和Token认证
    使用BurpSuite抓取HTTPS网站的数据包
    堆、栈和队列的区别
  • 原文地址:https://www.cnblogs.com/startl/p/12054042.html
Copyright © 2011-2022 走看看