| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> python多进程multiprocessing使用,看这篇就够了(一) -> 正文阅读 |
|
[系统运维]python多进程multiprocessing使用,看这篇就够了(一) |
1. 看代码 ? ?以上可看到,2个任务(子进程)同时启动,下载时间由耗时最久的任务决定。 再看看没有使用多进程的情况,下载时间是2个任务下载时间之和。 2.在电脑里,每个进程都是独立的,都有自己的资源、内存空间,当然都有唯一的id,打开电脑的任务管理器,可以看到,这里显示电脑正在运行的所有进程。?进程是正在运行的程序的实例。 3.多进程是怎么运行的呢,python的os包提供了getpid()方法可以打印进程id, 4. 如果不使用join(join起到阻塞作用), 看看是什么情况:? ?5.以上可以看出join的作用了,使用join,主进程跑到join那里,处于挂起状态,看源码,join可以通过设置timeout来决定主进程等待多长时间,若子进程在timeout用完了还没跑完,主进程会杀死子进程。 6. 这里引出守护进程daemon, 将子进程用daemon设置为True, 则子进程成为主进程的守护线程,主进程死,则守护线程死。 7. 各个进程是独立的,不会共享全局变量,那么进程间如何进行进行通信呢,可以使用multiprocessing的Queue, 例如,要计算从0到1千万的和,如果不使用多进程,时间将会很长,如果使用多进程,将0到1千万分成几段,每一段使用一个进程进行计算,最后将各个进程的计算的结果相加,就能大大减少计算的时间。 ?ps: 线上项目千万不要这样用列表装大量数据,服务器内存会爆炸!!! 未完待续…… |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 6:32:26- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |