美文网首页
Process与进程池Pool

Process与进程池Pool

作者: 伍只蚊 | 来源:发表于2017-06-24 10:05 被阅读33次

fork()生成进程只适用于liunx系统,要想跨平台使用多进程需要导入multiprocessing模块。
和fork产生的进程不同,利用Process产生的进程,主进程会等待子进程执行完毕。
也可利用子类来创建进程,自定义类继承Process,重写run()方法,当进程start()时会自动调用run方法。
每个进程都有独立的系统资源,各进程间的变量不共享互不影响。
join()方法可以等待子进程结束后才继续往下走,用于进程间的同步。
1 from multiprocessing import Process 2 import time 3 def test(): 4 while True: 5 print('test') 6 time.sleep(1) 7 8 p = Process(target=test) 9 p.start() 10 11 while True: 12 print('main') 13 time.sleep(1)

Process的参数有:

  • target
    所调用的对象
  • args
    调用函数对象的元组参数
  • kwargs
    调用函数对象的关键字参数字典
  • name
    进程实例的别名

Process常用属性,方法

  • is_alive()
    进程是否还在执行
  • join([timeout])
    等待进程结束,或等待多少秒
  • start()
  • run()
    没有给定target,执行对象中的run()方法
  • terminate()
    立即终止
  • name
  • pid

进程池Pool

用于创建多个进程
3 from multiprocessing import Pool 4 import time 5 import os 6 7 def worker(num): 8 time.sleep(1) 9 print('工人 = %d,任务 = %d '%(os.getpid(),num)) 10 11 pa = Pool(3) 12 for i in range(10): 13 print(i) 14 pa.apply_async(worker,(i,)) 15 print('start') 16 pa.close() 17 pa.join() 18 print('end ')

multiprocess.Pool常用函数

  • apply_async(func,args,kwds)
    使用阻塞方式调用func
  • close()
    关闭Pool,不能继续添加新任务
  • terminate()
  • join(): 主进程阻塞,等待子进程结束,必须在close或terminate之后使用

主进程不等待子进程

相关文章

  • Process与进程池Pool

    fork()生成进程只适用于liunx系统,要想跨平台使用多进程需要导入multiprocessing模块。和fo...

  • Python - 多任务

    一、进程 1、multiprocessing.Process创建进程 2、使用Pool进程池创建进程 3、进程间的...

  • Python多进程

    一、fork模块 二、 multiprocessing模块中的Process类 三、进程池Pool 四、进程间的通...

  • Python进程池

    进程池Pool 当需要创建的子进程数量不多时,可以直接利用multiprocessing中的Process动态成生...

  • 简述进程池使用方法(Pool)

    # 进程池; 进程池Pool:里面放的都是进程,进程池可以根据任务自动创建进程,合理利用进程池中的进程完成多任务;...

  • 进程池Pool

    当需要创建的子进程数量不多时,可以直接利用multiprocessing中的Process动态生成多个进程,但如果...

  • python 进程(池)、线程(池)

    进程、多进程、进程池 进程总概述 进程 多进程(进程池创建) 解析:对Pool对象调用join()方法会等待所有子...

  • python高级 6 进程

    进程、进程的使用、进程注意点、进程间通信-Queue、进程池Pool、进程与线程对比、文件夹拷贝器-多任务 1.进...

  • Python实战计划学习笔记(11)使用多进程

    心得 启用进程池需要使用Pool库,使用指令pool=Pool()可自动调用所有CPU,效率比单进程大大提升 ma...

  • 【Python入门】21.进程编程之 multiprocessi

    摘要:多进程编程;fork( )的介绍;multiprocess模块;Process类;Pool类;subproc...

网友评论

      本文标题:Process与进程池Pool

      本文链接:https://www.haomeiwen.com/subject/woohcxtx.html