zoukankan      html  css  js  c++  java
  • 进程的开启 mulitiprocessing

    进程包 mulitiprocessing
    1.创建进程的模块
      1.1 引入模块
        form multiprocessing import Process
      1.2 使用模块 Process
        p = Process(target = func,args = (1,)) 创建一个进程对象
        target : 子进程开启的函数 , args :子进程函数的参数,必须是元组
        p.start() 向操作系统提交一个开启子进程的申请
      1.3 其他方法
        p.join() : 阻塞,直到p这个子进程完毕之后才会继续在执行下面的函数
        一批任务使用join,先用列表把进程对象存储起来,在遍历join
        p.is_alive() : 检查进程是否仍在执行任务,纯在返回True 错误返回False
        p.terminate() : 强制结束子进程,非阻塞
      1.4 常用使用方法
        1.4.1 函数开启子进程,并传入参数
          

    1 def func():
    2     print('in fun ', os.getpid(),os.getppid())
    3 if __mane__ == '__mian__':
    4     print('in main', os.getpid(),os.getppid())
    5     p = Process(target = func,args = (1,))
    6     p.start()


      对于windows来说 必要加 if __mane__ == '__mian__':
      Windows 创建进程对象等于import引入当前py文件
      对于linux ios 来说不必要加 if __mane__ == '__mian__':
      linux mac 创建进程对象等于 复制了一份当前py文件 并没有加载
      1.4.2 面向对象开启子进程的方法

    class Myprocess(Process)
        def __init__(self,mun)
        super().__init__
        self.num = num 
    def run(self):
        print('in run ',self.num, os.getpid(),os.getppid())
    if __mane__ == '__mian__':
        print('in main', os.getpid(),os.getppid())
        p = Myprocess(1)
  • 相关阅读:
    牛客算法周周练18A
    洛谷P2580
    Codeforces 617E
    SPOJ 3267
    Codeforces Round #661 (Div. 3) 解题报告(ABCD)
    Codeforces 1399D
    Codeforces 1399C
    Codeforces 1399B
    Codeforces 1399A
    牛客算法周周练18 解题报告(ABCE)
  • 原文地址:https://www.cnblogs.com/wy3713/p/9366812.html
Copyright © 2011-2022 走看看