温州微网站制作电话伪类网站
news/
2025/9/26 15:26:02/
文章来源:
温州微网站制作电话,伪类网站,建三江佳木斯网站建设,怎样做网站能百度能搜到目录
一.Python 进程池 multiprocessing.Pool 介绍二.Python 进程池 multiprocessing.Pool 使用三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 Python 基础入门 Python 进程池 Pool 和前面讲解的** Python 线程池** 类似#xff0c;虽然使用多进程能提…目录
一.Python 进程池 multiprocessing.Pool 介绍二.Python 进程池 multiprocessing.Pool 使用三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 Python 基础入门 Python 进程池 Pool 和前面讲解的** Python 线程池** 类似虽然使用多进程能提高效率但是进程的创建会消耗大量的计算机资源进程 Process 的创建远远大于线程 Thread 创建占用的资源线程是计算机最小的运行单位**连线程都需要使用线程池进程有什么理由不使用进程池
需要注意的是在 Windows 上要想使用进程模块就必须把有关进程的代码写在if __name__ ‘__main__’ 内否则在 Windows 下使用进程模块会产生异常。 Unix / Linux 下则不需要。 一.Python 进程池 multiprocessing.Pool 介绍
Pool 类可以提供指定数量的进程供用户调用当有新的请求提交到 Pool 中时如果池还没有满就会创建一个新的进程来执行请求。如果池满请求就会告知先等待直到池中有进程结束才会创建新的进程来执行这些请求。
# 导入进程模块import multiprocessing# 最多允许3个进程同时运行pool multiprocessing.Pool(processes 3)1、apply — 该函数用于传递不定参数主进程会被阻塞直到函数执行结束不建议使用并且 3.x 以后不在出现函数原型如下
apply(func, args(), kwds{})**2、apply_async **— 与 apply 用法一致但它是非阻塞的且支持结果返回后进行回调函数原型如下
apply_async(func[, args()[, kwds{}[, callbackNone]]])3、map — Pool 类中的 map 方法与内置的 map 函数用法基本一致它会使进程阻塞直到结果返回函数原型如下
map(func, iterable, chunksizeNone)注意虽然第二个参数是一个迭代器但在实际使用中必须在整个队列都就绪后程序才会运行子进程。
**4、map_async **— 与 map 用法一致但是它是非阻塞的。其有关事项见 apply_async函数原型如下
map_async(func, iterable, chunksize, callback)5、close — 关闭进程池pool使其不在接受新的任务。
6、terminal — 结束工作进程不在处理未处理的任务。
7、join — 主进程阻塞等待子进程的退出 join 方法要在 close 或 terminate 之后使用。
二.Python 进程池 multiprocessing.Pool 使用
# !usr/bin/env python
# -*- coding:utf-8 _*-Author:猿说编程
Blog(个人博客地址): www.codersrc.com
File:Python 进程池 multiprocessing.Pool.py
Time:2021/05/09 07:37
Motto:不积跬步无以至千里不积小流无以成江海程序人生的精彩需要坚持不懈地积累import multiprocessing
import timedef func(msg):print(in:, msg)time.sleep(3)print(out,, msg)if __name__ __main__:# 这里设置允许同时运行的的进程数量要考虑机器cpu的数量进程的数量最好别小于cpu的数量# 因为即使大于cpu的数量增加了任务调度的时间效率反而不能有效提高pool multiprocessing.Pool(processes 3)item_list [processes1 ,processes2 ,processes3 ,processes4 ,processes5 ,]count len(item_list)for item in item_list:msg python教程 %s %item# 维持执行的进程总数为processes当一个进程执行完毕后会添加新的进程进去pool.apply_async(func, (msg,))pool.close()pool.join() # 调用join之前先调用close函数否则会出错。执行完close后不会有新的进程加入到pool,join函数等待所有子进程结束
输出结果in: python教程 processes1
in: python教程 processes2
in: python教程 processes3
out, python教程 processes1
in: python教程 processes4
out, python教程 processes2
in: python教程 processes5
out, python教程 processes3
out, python教程 processes4
out, python教程 processes5代码分析
5 个任务3 个进程由于在进程池构造的时候允许同时最多执行 3 个进程所以同时执行任务 1 / 任务 2 / 任务 3重代码的输出结果来看任务 1 / 任务 2 / 任务 3 执行后for 循环进入阻塞状态直到任务 1 / 任务 2 / 任务 3 其中一个结束之后才会 for 才会继续执行任务 4 / 任务 5并保证同时执行的最多只有 3 个任务 进程池 multiprocessing.Pool 和 线程池 ThreadPoolExecutor 原理相同. 三.猜你喜欢
Python 条件推导式Python 列表推导式Python 字典推导式Python 不定长参数 *argc/**kargcsPython 匿名函数 lambdaPython return 逻辑判断表达式Python is 和 区别Python 可变数据类型和不可变数据类型Python 浅拷贝和深拷贝Python 异常处理Python 线程创建和传参Python 线程互斥锁 LockPython 线程时间 EventPython 线程条件变量 ConditionPython 线程定时器 TimerPython 线程信号量 SemaphorePython 线程障碍对象 BarrierPython 线程队列 Queue – FIFOPython 线程队列 LifoQueue – LIFOPython 线程优先队列 PriorityQueuePython 线程池 ThreadPoolExecutor(一)Python 线程池 ThreadPoolExecutor(二)Python 进程 Process 模块Python 进程 Process 与线程 threading 区别Python 进程间通信 Queue / Pipe
未经允许不得转载猿说编程 » Python 进程池 multiprocessing.Pool
[喜欢(1)](javascript: [打赏](javascript:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/918455.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!