博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python多进程multiprocessing应用
阅读量:3898 次
发布时间:2019-05-23

本文共 1644 字,大约阅读时间需要 5 分钟。

主要用到multiprocessing模块

当所需的子进程不多时,我们用Process

from multiprocess import processimport timedef func1(num):    while True:        num += 1        print('Func1........' + str(num))        time.sleep(1)def func2(num):    while True:        num += 2        print('Func2.........' + str(num))        time.sleep(1)p = Process(target= func1, args= [1, ])p2 = Process(target= func2, args= [1,])print('Child1 process will start.')p.start()print('Child2 is start!')p2.start()#p.join()time.sleep(3)p.terminate()print('Child1 process end.')

输出结果如下

Child1 process will start.Child2 is start!Func1........2Func2.........3Func1........3Func2.........5Func1........4Func2.........7Child1 process end.Func2.........9Func2.........11Func2.........13

join()方法可以等待子进程结束后再继续往下运行,通常用于进程间的同步

当取消对p.jion()的注释后,运行结果如下:

Child1 process will start.Child2 is start!Func1........2Func2.........3Func1........3Func2.........5Func1........4Func2.........7Func1........5Func2.........9Func1........6Func2.........11Func1........7Func2.........13Func1........8Func2.........15Func1........9Func2.........17

当需要多个子进程时,我们可以用到Pool

from multiprocessing import Process, Poolimport timedef func1(num):    while True:        num += 1        print('Func1........' + str(num))        time.sleep(1)def func2(num):    while True:        num += 2        print('Func2.........' + str(num))        time.sleep(1)p = Pool(2)p.apply_async(func1, args=[1,])p.apply_async(func2, args= [1,])p.close()#p.join()time.sleep(3)p.terminate()print('terminate!')

调用close()运行进程

输出结果如下

Func1........2Func2.........3Func1........3Func2.........5Func1........4Func2.........7Func1........5Func2.........9terminate!

转载地址:http://saben.baihongyu.com/

你可能感兴趣的文章
10个迹象表明程序员编码太久了
查看>>
UML工具Astah的使用
查看>>
Whats my Coverage? (C0 C1 C2 C3 + Path)
查看>>
VIM技巧2 – 删除空行 (正则表达式)
查看>>
真正的阅读者,是不需要荐书的
查看>>
shell中函数返回值
查看>>
[小技巧] gdb 里数值轮换
查看>>
ClearCase项目管理介绍
查看>>
解决 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 问题
查看>>
WordPress快速建站
查看>>
[豆知识] 关于 rpm 安装包
查看>>
How To Set Up vsftpd on Ubuntu 12.04
查看>>
实例演示如何使用WordPress自定义字段
查看>>
在 WordPress 指定页面加载指定 JavaScript 或 CSS 代码
查看>>
Apache配置多个监听端口和不同的网站目录的简单方法
查看>>
Linux 搭建 discuz 论坛
查看>>
如何在discuz帖子中插入视频
查看>>
怎么更改织梦网站logo和默认广告
查看>>
织梦系统如何插入优酷视频?
查看>>
Discuz设置特定用户组不启用验证码发帖权限
查看>>