进程的开启 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)

 

posted @ 2018-07-25 16:44  Begin_Again  阅读(185)  评论(0编辑  收藏  举报