Python 多进程编程之multiprocessing--Process
Python 多进程编程之multiprocessing
1,Process
- 跨平台的进程创建模块(multiprocessing), 支持跨平台:windowx/linux
- 创建和启动
创建格式:p=Process(target=函数名)
----def __init__(self, group=None, target=None, name=None, args=(), kwargs={}):
group:分组(基本不用)
target:表示这个进程实例所调用的对象.
name:给进程起一个别名
args:参数,表示调用对象的位置参数元组
kwargs:表示调用对象的关键字参数字典
注意:target后是函数名,一定要记住,是函数名,没有括号
带括号的话,子进程就没有创建,直接在主进程执行了
启动:p.start() - ----在主进程等待指令之前加入 p.join()
这个命令叫做"阻塞",意思是让主进程
等待子进程结束之后,再执行join()之后的语句
----可以设置等待子进程时间 p.join(4)
设置时间之后,主进程的阻塞时间只有4秒 - 进程对象.is_alive()
检测进程是否活着
----会有2个返回值
True:活着
False:死了 - 进程对象.terminate()
----不管进程是否结束,
强制终止进程 - 实例:从键盘输入一个整数,分别开启两个进程来计算这个数的累加和和阶乘。
(第一个进程用系统提供给我们的类,第二个进程需要自己定义) from multiprocessing import Process #方法1:
def sumToN(n):
s = 0
for i in range(1,n+1):
s += i
print("累加和:%d"%s) #方法2:
class JieCheng(Process):
def __init__(self,n):
Process.__init__(self)
self.n = n def run(self):
j = 1
for i in range(1, self.n + 1):
j *= i
print("%d!=%d"%(self.n, j)) if __name__ == "__main__":
#输入一个数:
str_num = input("请输入一个数:")
num = int(str_num) #创建进程--计算
#方法1: 系统提供给我们的类
p1 = Process(target=sumToN,args=(num,))
p1.start() #方法2:自己定义的类,也叫继承系统类
p2 = JieCheng(num)
p2.start()
Python 多进程编程之multiprocessing--Process的更多相关文章
- Python 多进程编程之multiprocessing--Pool
Python 多进程编程之multiprocessing--Pool ----当需要创建的子进程数量不多的时候,可以直接利用multiprocessing 中的Process 动态生成多个进程, -- ...
- python并发编程之multiprocessing进程(二)
python的multiprocessing模块是用来创建多进程的,下面对multiprocessing总结一下使用记录. 系列文章 python并发编程之threading线程(一) python并 ...
- python多进程的理解 multiprocessing Process join run
最近看了下多进程. 一种接近底层的实现方法是使用 os.fork()方法,fork出子进程.但是这样做事有局限性的.比如windows的os模块里面没有 fork() 方法. windows:.lin ...
- Python 多进程编程之fork()
Python实现多进程可以用系统fork()方法和python的multiprocessing类 1,fork()方法是Unix/Linux操作系统提供的,在python的os模块中自带fork(). ...
- python并发编程之Queue线程、进程、协程通信(五)
单线程.多线程之间.进程之间.协程之间很多时候需要协同完成工作,这个时候它们需要进行通讯.或者说为了解耦,普遍采用Queue,生产消费模式. 系列文章 python并发编程之threading线程(一 ...
- python并发编程之asyncio协程(三)
协程实现了在单线程下的并发,每个协程共享线程的几乎所有的资源,除了协程自己私有的上下文栈:协程的切换属于程序级别的切换,对于操作系统来说是无感知的,因此切换速度更快.开销更小.效率更高,在有多IO操作 ...
- python并发编程之threading线程(一)
进程是系统进行资源分配最小单元,线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.进程在执行过程中拥有独立的内存单元,而多个线程共享内存等资源. 系列文章 py ...
- python并发编程之gevent协程(四)
协程的含义就不再提,在py2和py3的早期版本中,python协程的主流实现方法是使用gevent模块.由于协程对于操作系统是无感知的,所以其切换需要程序员自己去完成. 系列文章 python并发编程 ...
- Python函数式编程之map()
Python函数式编程之map() Python中map().filter().reduce()这三个都是应用于序列的内置函数. 格式: map(func, seq1[, seq2,…]) 第一个参数 ...
随机推荐
- MySQL安全机制 DDL DCL
一.MySQL用户管理 1. 修改用户密码 ===root修改自己密码=== 方法一: # mysqladmin -uroot -p'123' password 'new_password' //12 ...
- sas 获取数据集观测数量
DATA _NULL_;SET SASHELP.CLASS NOBS=N;CALL SYMPUTX('N',N);STOP;RUN; %PUT N=&N.; 运行结果: 57 DATA _NU ...
- ubuntu server cloud img username password
新安装了OpenStack Queens发现无镜像,蹦蹦跳跳的下载了ubuntu的镜像 网址https://cloud-images.ubuntu.com/ 最好你自己找你想要的,vmdk.ova.i ...
- 【亲测】关于HTTP协议~
如果有一点点基本的开发者工具基础知识,我们知道:Elements是用来查看网页结构的,也就是可以看到整体的HTML语言:Console是控制台,Network是请求想相应状态. 1)一个Name就是一 ...
- shell:实现linux服务器资源监控并发送告警邮件
1.安装方式 wget http://10.8.225.126/wsmonitor/install.sh;sh install.sh test@test.com 2.install.sh #!/bin ...
- 学习笔记:jqueryui
Jquery UI cdn.bootcss.com <!-- jquery --> <script src="http://cdn.bootcss.com/jquery/1 ...
- Java 原子语义同步的底层实现
原子语义同步的底层实现 volatile volatile只能保证变量对各个线程的可见性,但不能保证原子性.关于 Java语言 volatile 的使用方法就不多说了,我的建议是 除了 配合packa ...
- css:pointer-events: none
css3新属性pointer-events: none: pointer-events: none 顾名思义,就是鼠标事件拜拜的意思.元素应用了该 CSS 属性,链接啊,点击啊什么的都变成了 “浮云牌 ...
- Linux命令:pwd
打印当前目录的完全路径. -L 打印路径包含符合路径 -P 打印路径不含符合路径. -LP,可能打印的不同,取决于你对进入当前目录的方式是通过符号链接进入,还是物理目录进入.如果是符号链接进入,则-L ...
- SSH登录启用Google二次身份验证
一般来说,使用ssh远程登录服务器,只需要输入账号和密码,显然这种方式不是很安全.为了安全着想,可以使用GoogleAuthenticator(谷歌身份验证器),以便在账号和密码之间再增加一个验证码, ...