进程池
时间:2019-09-19
本文章向大家介绍进程池,主要包括进程池使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1.同步执行--------------
from concurrent.futures import ProcessPoolExecutor,ThreadPoolExecutor
import os,time,random
def task(n):
print('[%s] is running'%os.getpid())
time.sleep(random.randint(1,3)) #I/O密集型的,,一般用线程,用了进程耗时长
return n**2
if __name__ == '__main__':
start = time.time()
p = ProcessPoolExecutor()
for i in range(10): #现在是开了10个任务, 那么如果是上百个任务呢,就不能无线的开进程,那么就得考虑控制
#线程数了,那么就得考虑到池了
obj = p.submit(task,i).result() #相当于apply同步方法
p.shutdown() #相当于close和join方法
print('='*30)
print(time.time() - start) #17.36499309539795
2.异步执行-----------
from concurrent.futures import ProcessPoolExecutor,ThreadPoolExecutor
import os,time,random
def task(n):
print('[%s] is running'%os.getpid())
time.sleep(random.randint(1,3)) #I/O密集型的,,一般用线程,用了进程耗时长
return n**2
if __name__ == '__main__':
start = time.time()
p = ProcessPoolExecutor()
l = []
for i in range(10): #现在是开了10个任务, 那么如果是上百个任务呢,就不能无线的开进程,那么就得考虑控制
# 线程数了,那么就得考虑到池了
obj = p.submit(task,i) #相当于apply_async()异步方法
l.append(obj)
p.shutdown() #相当于close和join方法
print('='*30)
print([obj.result() for obj in l])
print(time.time() - start)
原文地址:https://www.cnblogs.com/qwksjy/p/11550278.html
- go-nsq使用简述
- hdu---(4515)小Q系列故事——世界上最遥远的距离(模拟题)
- 利用sys schema解决一次诡异的语句hang问题
- hdu----(4513)吉哥系列故事——完美队形II(manacher(最长回文串算法))
- 学习manacher(最长公共回文串算法)
- Apache Spark 2.3 加入支持Native Kubernetes及新特性文档下载
- Oracle 12c 多租户专题|隔离PDB的磁盘IO
- golang 裸写一个pool池控制协程的大小
- 2014---多校训练2(ZCC Loves Codefires)
- 完整的golang 多协程+信道 任务处理示例
- 2014---多校训练一(A Couple doubi)
- hdu----(2586)How far away ?(DFS/LCA/RMQ)
- Golang控制goroutine的启动与关闭
- spring-boot-starter-swagger迎新伙伴支持,加速更新进度(1.3.0.RELEASE)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法