进程池pool
2020-02-03 04:59
323 查看
使用情况
当需要的进程不多时,可以使用multiprocessing 中的process动态生成多个进程,
如果需要的进程数量过于庞大,则使用 multiprocessing 中提供的 pool 方法。
初始化进程池时。可以指定一个最大进程值,当有新的进程请求被提交时,如果进程池还没有满,则会创建一个新的进程池执行该请求,但如果进程池中的进程已达到最大值,则该请求加入等待队列,当有进程被执行结束时,从等待队列被分配。
代码实现
- windows 和 Linux 平台代码略有不同
windows
#!/usr/bin/env python # -*- coding:utf-8 -*- from multiprocessing import Pool import os import time import random def worker(msg): t_start = time.time() print("%s 开始执行,进程号为 %d" % (msg,os.getpid())) # 随机生成0--1之间的浮点数 time.sleep(random.random()*2) t_stop = time.time() print(msg,"执行完毕,耗时%0.2f" % (t_stop-t_start)) if __name__ == '__main__': po = Pool(3) for i in range(0,10): po.apply_async(worker,(i,)) print("----start----") po.close() po.join() print("----end----")
Linux
#!/usr/bin/env python # -*- coding:utf-8 -*- from multiprocessing import Pool import os import time import random def worker(msg): t_start = time.time() print("%s 开始执行,进程号为 %d" % (msg,os.getpid())) # 随机生成0--1之间的浮点数 time.sleep(random.random()*2) t_stop = time.time() print(msg,"执行完毕,耗时%0.2f" % (t_stop-t_start)) po = Pool(3) for i in range(0,10): po.apply_async(worker,(i,)) print("----start----") po.close() po.join() print("----end----")
运行截图
未完待续。。。
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- PYTHON多进程编码结束之进程池POOL
- python:Process、join()、进程的创建Process子类、进程池Pool、将一个文件夹的内容copy到另一个文件夹
- python进程之间修改数据[Manager]与进程池[Pool]
- Python 进程池 Pool
- Python多任务(四)-----进程池Pool
- Python多进程并发操作中进程池Pool的应用
- Python多进程并发操作中进程池Pool的应用
- python进程池:multiprocessing.pool
- python:Process、join()、进程的创建Process子类、进程池Pool、将一个文件夹的内容copy到另一个文件夹
- python进程池:multiprocessing.pool
- Python多进程并发操作中进程池Pool的应用
- Python多进程并发操作进程池Pool
- python进程池:multiprocessing.pool
- python进程池pool的starmap的使用
- Python 多进程并发操作中进程池Pool的实例
- python补充之Multiprocessing(四)进程池Pool
- 进程池pool
- Python多进程——进程池Pool
- python进程池:multiprocessing.pool
- 【Python】python进程池:multiprocessing.pool