python3 进程_multiprocessing模块
'''
多进程
优点:可以利用多核,实现并行运算
缺点:1、开销太大; 2、通信困难
使用方式跟开多线程一样
''' 多进程
import multiprocessing
import time,os def foo(name):
print('ok')
print('name',name)
print('parent process:',os.getppid()) # os.getppid()获取父进程号
print('process id:',os.getpid()) # os.getpid()获取子进程号
time.sleep(2) if __name__ == '__main__': # 开子进程必须用这种方式 foo('main process') p = multiprocessing.Process(target=foo,args=('egon',))
p.start()
print('ending')
开多进程补充
def foo():
time.sleep(2)
print("ok")
#print(x) print("yuan") # 每开启一个进程,会将主进程加载一次,也就会打印一次 if __name__ == '__main__': # 进程从这里开始 p=Process(target=foo,) # 新的进程,打印一次‘yuan’
p.start() p1 = Process(target=foo, )
p1.start() x=123 # Linux系统,新进程会自带主进程变量,所以自进程也可以打印x值,Windows系统不会
p.join() print("ending")
'''
进程间通讯
队列,管道,manager共享
'''
进程queue
import multiprocessing def foo(q):
q.put([11,'hello',True]) if __name__ == '__main__': q = multiprocessing.Queue() # 进程队列,主函数运行创建进程队列 p = multiprocessing.Process(target=foo,args=(q,))
p.start() print(q.get())
进程管道
from multiprocessing import Pipe,Process
def foo(a):
a.send('hello world')
print(a.recv()) if __name__ == '__main__':
a,b = Pipe()
p = Process(target=foo,args=(a,))
p.start() print(b.recv()) b.send('hi son')
manager数据共享
from multiprocessing import Process,Pipe,Manager def foo(d,i):
d[i] = i**2 if __name__ == '__main__':
manager=Manager()
mdict = manager.dict({}) l = []
for i in range(5):
p = Process(target=foo,args=(mdict,i))
p.start()
l.append(p) for i in l:
i.join() print(mdict)
'''
进程池
Pool可以提供指定数量的进程,供用户调用,当有新的请求提交到pool中时,如果池还没有满,那么就会创建一个新的进程用来执行该请求;
但如果池中的进程数已经达到规定最大值,那么该请求就会等待,直到池中有进程结束,就重用进程池中的进程
'''
from multiprocessing import Pool
import time def foo(n):
print(n)
time.sleep(1) if __name__ == '__main__': pool_obj = Pool(5) for i in range(100):
pool_obj.apply_async(func=foo,args=(i,)) pool_obj.close()
pool_obj.join() print('ending')
python3 进程_multiprocessing模块的更多相关文章
- python基础系列教程——Python3.x标准模块库目录
python基础系列教程——Python3.x标准模块库目录 文本 string:通用字符串操作 re:正则表达式操作 difflib:差异计算工具 textwrap:文本填充 unicodedata ...
- Python3之logging模块浅析
Python3之logging模块浅析 目录 Python3之logging模块浅析 简单用法 日志与控制台同时输出 一个同时输出到屏幕.文件的完成例子 日志文件截取 日志重复打印问题解决 问题分 ...
- 第三十天- 进程 Process模块 空间隔离
1.进程: 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基本执行实体: ...
- Python3之turtle模块的使用
Python3之turtle模块的使用 直接扣代码就行: import turtle as t t.pensize(4) t.hideturtle() t.colormode(255) t.c ...
- 0510进程 multiprocess模块
process模块是一个创建进程的模块,借助这个模块,就可以完成进程的创建. 创建模块 import os import time from multiprocessing import Proces ...
- Python3:Requests模块的异常值处理
Python3:Requests模块的异常值处理 用Python的requests模块进行爬虫时,一个简单高效的模块就是requests模块,利用get()或者post()函数,发送请求. 但是在真正 ...
- Python3中正则模块re.compile、re.match及re.search函数用法详解
Python3中正则模块re.compile.re.match及re.search函数用法 re模块 re.compile.re.match. re.search 正则匹配的时候,第一个字符是 r,表 ...
- Python3安装Celery模块后执行Celery命令报错
1 Python3安装Celery模块后执行Celery命令报错 pip3 install celery # 安装正常,但是执行celery 命令的时候提示没有_ssl模块什么的 手动在Python解 ...
- Python3之configparser模块
1. 简介 configparser用于配置文件解析,可以解析特定格式的配置文件,多数此类配置文件名格式为XXX.ini,例如mysql的配置文件.在python3.X中 模块名为configpars ...
随机推荐
- 第九篇 Python数据类型之集合
集合 set 写在最前,必须要会的:1.长度len2.成员运算in和not in3.|合集4.&交集5.-差集6.^对称差集7.==8.父集:>,>= 9.子集:<,< ...
- P4332三叉神经树
题面 \(Solution\) 通过模拟,我们会发现每次修改 \(x\),只会改变从 \(x\) 向上一段连续的链的输出. 例如将 \(x\) 点从 \(0\) 改为 \(1,\) 那么它会影响从它向 ...
- LLLYYY的数字思维(模拟题)
链接:https://ac.nowcoder.com/acm/contest/318/G LLLYYY很喜欢写暴力模拟贪心思维.某一天在机房,他突然抛给了队友ppq一 个问题.问题如下: 有一个函数f ...
- Elicpse新建userLibrary导入jar包时抛出NotFoundException异常
最近刚开始学Struts2.0框架.再导入jar包的时候突然心血来潮.为方便区分jar包的功能,于是想在WEB-INF -> lib 目录下想新建一个struts文件夹,以方便分类查看. 像上图 ...
- video on web
一.video容器 你可能经常看到.avi或.mp4的视频文件,实际上avi或者mp4只是一种视频容器.打个比方,ZIP的压缩文件可以包含各种各样的文件,同理,视频容器也定义用来怎么存放各种 ...
- 关于debian配置的问题汇总
debian的apache多域名配置: https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-ho ...
- Jboss6内存修改
1.启动脚本:/home/jboss/jboss-eap-6.2/bin/standalone.sh -Djboss.bind.address.management=192.168.0.62 -Djb ...
- Java中输入输出流
InputStream:所有字节输入流的所有类的超类. read(byte[] b)从输入流中读取一定数量的字节,并将其存储在缓冲数组b中 reset()将此流重新定位到最后一次对此流调用mark方法 ...
- [LOJ#6437][BZOJ5373]「PKUSC2018」PKUSC
[LOJ#6437][BZOJ5373]「PKUSC2018」PKUSC 试题描述 九条可怜是一个爱玩游戏的女孩子. 最近她在玩一个无双割草类的游戏,平面上有 \(n\) 个敌人,每一个敌人的坐标为 ...
- 【TMD模拟赛】黄金拼图 Cao
正解:Cao 据说这样的题是用来骗丛林生物上树的...... 这样的题除了考观察力之外还.........我们发现他异或了opt,恩,就这样,用离线推答案..... #include <cstd ...