pool创建多进程

这中方式用的比较多,毕竟要控制并发数量,不可能不限制并发数

 1 #_*_coding:utf-8_*_
 2 from multiprocessing import  Pool
 3 import time
 4
 5 def f(x):
 6     #制造一个进程超时的效果
 7     if x == 4:
 8         time.sleep(4)
 9     else:
10         time.sleep(1)
11     return x*x
12
13
14
15 if __name__ == ‘__main__‘:
16    pool = Pool(processes=4)
17    res_list = []
18    #执行方法,res= pool.apply_async(f,[i,])  这只是一种写法.以下这些行用这一条就能搞定print pool.map(f,range(5))
19    for i in range(5):
20     #异步方式
21     res= pool.apply_async(f,[i,])
22     print ‘----:‘,i
23     res_list.append(res)
24    #循环获取结果
25    for i in res_list:
26         try:
27            #打印结果,如果获取结果超过2秒钟将报异常
28            print i.get(timeout=2)
29         except Exception:
30             print "进程:%s 获取结果超时"% i

显示结果:

----: 0
----: 1
----: 2
----: 3
----: 4
0
1
4
9
进程:<multiprocessing.pool.ApplyResult object at 0x00000000026C9CF8> 获取结果超时

这个例子主要是告诉大家如何使用pool,例子中可以使用print pool.map(f,range(5))就搞定。不用写那么多行

每个人的写法都不一样 所以就看大家的了

时间: 2024-11-07 07:34:10

pool创建多进程的相关文章

使用multiprocessing模块创建多进程

1 # 使用multiprocessing模块创建多进程 2 # multiprcessing模块提供了一个Process类来描述一个进程对象. 3 # 创建子进程时,只需要传入一个执行函数和函数的参数,即可完成一个process实例的创建 4 # 用start()方法启动进程 5 # 用join()方法实现进程间的同步. 6 import os 7 from multiprocessing import Process 8 # os模块中的getpid()方法获取当前进程的id 9 # get

0704 Process继承实现多进程、Pool进程池,及Pool实现多进程实现复制文件

通过继承的方式,实现Process多进程 1 from multiprocessing import Process 2 import time 3 4 class MyNewProcess(Process): 5 def run(self): 6 for i in range(10): 7 print("----run----") 8 time.sleep(1) 9 10 11 if __name__ == "__main__": 12 p = MyNewProc

Python创建多进程,用Queue传递信息

创建10个进程,分别计算0到1000各个区间的和,主进程汇总 __author__ = 'Administrator' # -*- coding:utf-8 -*- ''' @author:qiushui ''' import os import threading import multiprocessing import Queue def calculator(q, calContext): sumCal = 0; for i in range(calContext[0], calCont

进程的基本操作,fork(),创建多进程。

fork用于新建一个子进程,简单的例子: #include <fcntl.h> //提供open函数 #include <sys/types.h> // 该头文件提供系统调用的标志 #include <sys/stat.h> // 该头文件提供系统状态信息和相关函数 #include <sys/uio.h> // 该头文件提供进程I/O操作的相关函数 #include <unistd.h> // 标准函数库 #include <fcntl.

创建 Pool & VIP - 每天5分钟玩转 OpenStack(122)

上节完成了 LBaaS 配置,今天我们开始实现如下 LBaaS 环境. 环境描述如下:1. 创建一个 Pool "web servers".2. 两个 pool member "WEB1" 和 "WEB2",均为运行 Ubuntu cloud image 的 instance.3. load balancer VIP 与 floating IP 关联.4. 位于外网的 client 通过 floating IP 外网访问 web server.

Pool多进程示例

利用Pool类多进程实现批量主机管理 1 #!/usr/bin/python 2 # -*- coding: UTF-8 -*- 3 # Author: liulixin 4 # Time: 2017-03-02 5 # Description: Achieve the Multiple Processes(High Concurrent) to execute single or multiple commands functions by pool class of Python Lang.

python学习笔记——multiprocess 多进程组件Pool

1 进程池Pool基本概述 在使用Python进行系统管理时,特别是同时操作多个文件目录或者远程控制多台主机,并行操作可以节约大量时间,如果操作的对象数目不大时,还可以直接适用Process类动态生成多个进程,几十个尚可,若上百个甚至更多时,手动限制进程数量就显得特别繁琐,此时进程池就显得尤为重要. 进程池Pool类可以提供指定数量的进程供用户调用,当有新的请求提交至Pool中时,若进程池尚未满,就会创建一个新的进程来执行请求:若进程池中的进程数已经达到规定的最大数量,则该请求就会等待,直到进程

7.多进程开发

<--目录--> 1.多进程 多进程官方文档 https://docs.python.org/2/library/multiprocessing.html [多进程] 示例1: # !/usr/bin/env python #coding:utf-8 from multiprocessing import Pool def f(x):     return x*x               #返回自乘值 if __name__ == '__main__':     p = Pool(5)  

python中的Queue与多进程(multiprocessing)

最近接触一个项目,要在多个虚拟机中运行任务,参考别人之前项目的代码,采用了多进程来处理,于是上网查了查python中的多进程 一.先说说Queue(队列对象) Queue是python中的标准库,可以直接import 引用,之前学习的时候有听过著名的"先吃先拉"与"后吃先吐",其实就是这里说的队列,队列的构造的时候可以定义它的容量,别吃撑了,吃多了,就会报错,构造的时候不写或者写个小于1的数则表示无限多 import Queue q = Queue.Queue(10