zoukankan      html  css  js  c++  java
  • 多进程multiprocessing模块,及join的用法

     1 from multiprocessing import Process
     2 
     3 def func(name):
     4     print(name, "在吃饭")
     5 
     6 if __name__ == '__main__':
     7     a = Process(target=func, name = "吃饭", args=("小明", ))     # 此处,args参数是元组形式,
     8     # 实例化一个进程
     9     b = Process(target=func, args=("小红", ))     # 此处,args参数是元组形式,
    10     # 在实例化一个进程
    11     a.daemon = True  # 设置a进程为守护进程,进程启动前设置,(守护进程是伴随主程序代码结束而结束)可用在监测主进程运行状态
    12     a.start()   # 开启一个进程(只是给操作系统发送请求,开启一个进程,就不管了)
    13     b.start()
    14     print(a.pid)    # 打印进程a的的PID号14672(身份证号)
    15     print(b.pid)        # 8764
    16     a.terminate()   # 终止(杀死)进程
    17     print(a.is_alive())        # 判断进程是否存活
    18     print(a.name)       # 进程a的名字  自定义的:吃饭
    19     print(b.name)       # b进程的名字  默认的名字:Process-2
    20     print("小丽在吃饭")
    21     # 三个进程之间,开启时间顺序不一,没有先后

    接下来是join的用法:

     join是把下面,非join代码,都当成主进程..要在本进程执行结束后,在执行主进程

     1 from multiprocessing import Process
     2 
     3 def func(name):
     4     print(name, "在吃饭")
     5 
     6 if __name__ == '__main__':
     7     a = Process(target=func, args=("小明", ))
     8 
     9     b = Process(target=func, args=("小红", ))
    10 
    11     c = Process(target=func, args=("小刚",))
    12 
    13 
    14     b.start()
    15     b.join()    # 下面的代码,要在b进程执行结束,再执行
    16 
    17     a.start()
    18     c.start()
    19     a.join()    # 多个join连在一起,就无需等相互间执行的结果(最终都是相对于主进程)
    20     c.join()
    21 
    22     print("小丽在吃饭")
  • 相关阅读:
    旧文备份:利用一个定时器实现多个虚拟定时器的两种方法
    TypeScript type 类型别名
    TypeScript 模块系统
    github----awesome-typescript-projects
    synchronous-request-with-websockets
    async await promise
    Sharing Configuration in ASP.NET Core SPA Scenarios
    Unicode String to a UTF-8 TypedArray Buffer in JavaScript
    MVC 访问静态页面 View 下面放JS
    Processing Binary Protocols with Client-Side JavaScript
  • 原文地址:https://www.cnblogs.com/NoteBook3013/p/10446811.html
Copyright © 2011-2022 走看看