创建进程池

from multiprocessing import Pool
import time,os
result = [] # 存放所有worker函数的返回值 def worker(msg):
time.sleep(1)
print "子进程的pid=%d,msg=%s" % (os.getpid(), msg)
return msg + " over" # 创建进程池,3表示进程池中进程数量,即最多有3个进程一起执行。可以这样写:pool = Pool(3)
pool = Pool(processes=3) for i in range(10): # 放入事件,有10个任务要向进程池中添加
msg = "hello %d" % i
# res = pool.apply(worker, (msg,)) # 堵塞的方式,一次只能添加1个任务
res = pool.apply_async(worker, (msg,)) # 一次能添加10个任务,但是仍然只有3个进程在同时执行
result.append(res) # 加入apply_async的返回值对象,该对象可以获取worker函数的返回结果 # 通过apply_async()的返回对象的get()方法获取返回值
for res in result:
print res.get() pool.close() # 关闭进程池,不能再加入事件。相当于不能够再次添加新任务了
pool.join() # 阻塞等待回收

Python—创建进程池的方式的更多相关文章

  1. Python创建进程、线程的两种方式

    代码创建进程和线程的两种方式 """ 定心丸:Python创建进程和线程的方式基本都是一致的,包括其中的调用方法等,学会一个 另一个自然也就会了. "" ...

  2. python中进程池的应用

    #原创,转载请联系 假设我们写的一个程序需要运行100个子进程的时候,那么写程序时,不可能循环创建销毁100个进程吧?进程的创建与销毁是很耗系统的资源的. 进程池的作用就体现出来了. 进程池可以控制进 ...

  3. python中进程池和回调函数

    一.数据共享 1.进程间的通信应该尽量避免共享数据的方式 2.进程间的数据是独立的,可以借助队列或管道实现通信,二者都是基于消息传递的. 虽然进程间数据独立,但可以用过Manager实现数据共享,事实 ...

  4. Python 多进程进程池Queue进程通信

    from multiprocessing import Pool,Manager import time def hanshu(queue,a): n = 1 while n<50: # pri ...

  5. python 使用进程池Pool进行并发编程

    进程池Pool 当需要创建的子进程数量不多时,可以直接利用multiprocessing中的Process动态成生多个进程,但如果是上百甚至上千个目标,手动的去创建进程的工作量巨大,此时就可以用到mu ...

  6. python之进程池与线程池

    一.进程池与线程池介绍 池子使用来限制并发的任务数目,限制我们的计算机在一个自己可承受的范围内去并发地执行任务 当并发的任务数远远超过了计算机的承受能力时,即无法一次性开启过多的进程数或线程数时就应该 ...

  7. day12学python 多进程+进程池

    多进程+进程池 多进程(不同进程不可直接访问数据) 引入(多进程套线程) 多进程 需导入multiprocessing模块 模板示例1 import threading,time,multiproce ...

  8. Python 37 进程池与线程池 、 协程

    一:进程池与线程池 提交任务的两种方式: 1.同步调用:提交完一个任务之后,就在原地等待,等任务完完整整地运行完毕拿到结果后,再执行下一行代码,会导致任务是串行执行 2.异步调用:提交完一个任务之后, ...

  9. 通过实现ServletContextListener接口创建数据库连接池(C3P0方式)

    使用Listener步骤 1. 定义Listener实现类 2. 在web.xml中配置(或使用Annotation) 使用C3P0方式创建数据库连接池需要添加的jar包 1.c3p0-0.9.5.j ...

随机推荐

  1. ESP8266的RTOS版本ota在线升级基本流程及备忘

    ESP8266的ota升级由于涉及到不同的flash空间大小,以及新旧版本的不同,所以流程相对比较复杂.笔者这个倒腾的时间还是有一些的,不过,总归把事情解决了.下面记录一下基本的流程和遇到的问题. 还 ...

  2. 持续集成(CI):Jmeter+Ant+Jenkins定时构建

    这里Jenkins的安装部署以及工程项目的整体配置不做赘述,其它博文已经说明,这里主要是赘述Ant的相关配置,build.xml文件配置以及项目中的部分配置 一.build.xml 在Ant的安装目录 ...

  3. Microsemi Libero使用技巧——查看芯片资源占用情况

    前言 与MCU不同,FPGA的资源主要包括:逻辑资源,IO资源,Flash大小,PLL资源,SoC硬核处理器资源等,其中逻辑资源和IO资源是我们主要关心的,本篇文章将介绍,如何通过Microsemi ...

  4. 操作mysql第一次访问速度慢(远程)

    最近在使用java操作远程的mysql数据库的时候,第一次请求非常的慢,而且极其容易引起系统的崩溃报错连接超时 下面就这个问题来解决下把 ------------------------------- ...

  5. ES中index和type区分

    参考: https://bayescafe.com/database/elasticsearch-using-index-or-type.html https://www.cnblogs.com/hu ...

  6. About learn《The C programming Language,Second Edition》

    Today,My last week buy C language book arrived. Today,I week earnest study. No matter what difficult ...

  7. IDEA新建Spring配置文件的方法

    IDEA创建Spring Config 选择项目文件右键 输入文件名称即可 applicationContext.xml

  8. pytest系列(一):什么是单元测试界的高富帅?

    pytest是python语言中一款强大的单元测试框架,用来管理和组织测试用例,可应用在单元测试.自动化测试工作中. unittest也是python语言中一款单元测试框架,但是功能有限,没有pyte ...

  9. Python生成requirements.txt方法

    在查看别人的Python项目时,经常会看到一个requirements.txt文件,里面记录了当前程序的所有依赖包及版本号,其作用是用来在另一个环境上重新构建项目所需要的运行环境依赖. require ...

  10. IM开发基础知识补课(七):主流移动端账号登录方式的原理及设计思路

    1.引言 在即时通讯网经常能看到各种高大上的高并发.分布式.高性能架构设计方面的文章,平时大家参加的众多开发者大会,主题也都是各种高大上的话题——什么5G啦.AI人工智能啦.什么阿里双11分分钟多少万 ...