python点击按钮创建进程_python-创建进程的三种方式
1,os.fork() 方法
import os
ret = os.fork()
if ret == 0:
#子进程
print("Sub process pid = %d, Sub process ppid = %d" % (os.getpid(), os.getppid()))
else:
#父进程
print("Parent Process ret = %d" % ret)
print("Parent Process pid = %d" % os.getpid())
在该方法中,执行os.fork()会再创建一个进程,原进程(父进程)返回一个大于零的值(即ret > 0),这个值恰好是子进程的pid;而创建的新进程会返回零(即ret = 0)。
fork炸弹:在用户输入栏输入:
while True:
os.fork()
设备内存就会很快被塞满,然后down掉。
2,Process方法
from multiprocessing import Process
def func():
print("i am subprocess")
new_process = Process(tartget=func)
print("i am Parent Process")
Process方法需要指定一个函数,且父进程会等待子进程结束。另外可以新建一个example类继承Process类,然后重写__init__和run()函数,之后调用example.start(),它就会自动执行run()函数。
3,Pool方法
from multiprocessing import Pool
import time
def worker(x):
for j in range(1, 11):
print("%d:%d" % (x, j))
time.sleep(1)
pool = Pool(3) # run 3 process simultaneously
for i in range(1, 11):
print(i)
pool.apply_async(worker, (i,))
print("---start---")
pool.close() # 关闭进程池,不允许继续添加进程
pool.join() # 等待进程池中的所有进程结束
print("---end---")
Pool方法即进程池,需要说明有几个进程同时运行。在使用apply_async方法时第一个参数是函数名,第二个参数需要输入一个元组。在示例代码中,进程池同时允许三个进程运行,另外七个进程排队等候,当第一批的三个进程执行完后,第二批的三个再执行。所以进程池相当于起到了缓冲的作用。
实际上,在进程池的方式中,父进程基本上只需要等待子进程执行(使用pool.join()进行等待),任务都是交给子进程执行的。
python点击按钮创建进程_python-创建进程的三种方式相关推荐
- linux+Qt 下利用D-Bus进行进程间高效通信的三种方式
linux+Qt 下利用D-Bus进行进程间高效通信的三种方式 原文链接: https://www.cnblogs.com/wwang/archive/2010/10/27/1862552.html ...
- Python找出列表中出现次数最多的元素三种方式
通过三种方式给大家介绍,具体详情如下所示: 方式一: 原理:创建一个新的空字典,用循环的方式来获取列表中的每一个元素,判断获取的元素是否存在字典中的key,如果不存在的话,将元素作为key,值为列表中 ...
- python的命名空间_python中命名空间的三种方式介绍(附示例)
本篇文章给大家带来的内容是关于python中命名空间的三种方式介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. python中的命名空间分三种: 内置的命名空间,在启动解 ...
- python实现定时任务的方式_Python实现定时执行任务的三种方式简单示例
本文实例讲述了Python实现定时执行任务的三种方式.分享给大家供大家参考,具体如下: 1.定时任务代码 #!/user/bin/env python # @Time :2018/6/7 16:31 ...
- python定时执行脚本_Python实现定时执行任务的三种方式简单示例
本文实例讲述了Python实现定时执行任务的三种方式.分享给大家供大家参考,具体如下: 1.定时任务代码 #!/user/bin/env python # @Time :2018/6/7 16:31 ...
- python语言format蔬菜姓名、年龄_python格式化输出的三种方式
[TOC] 格式化输出的三种方式 一.占位符(第一种格式化输出 )(3.0版本使用) 程序中经常会出现这样的 场景:要求用户输入信息,然后打印成固定的格式 比如要求用户输入用户名和年龄,然后打印如下格 ...
- python遍历字符串的每个字符_Python遍历字符串的4种方式
码农公社 210.net.cn 210是何含义?10月24日是程序员节,1024 =210.210既 210 之意. Python遍历字符串的4种方式 1.下标法 2.for in 3.iter内 ...
- python 网页爬虫nike_python网络爬虫-爬取网页的三种方式(1)
0.前言 0.1 抓取网页 本文将举例说明抓取网页数据的三种方式:正则表达式.BeautifulSoup.lxml. 获取网页内容所用代码详情请参照Python网络爬虫-你的第一个爬虫.利用该代码获取 ...
- 查看redis进程_redis安装(启动三种方式)
一.安装redis 第 1 步:下载redis安装包 [root@hadoop105 redis]# wget http://download.redis.io/releases/redis-4.0. ...
- java创建QRCode二维码的三种方式
自己在网上看视频学习了下如何使用java创建二维码,感觉还是挺有趣的,有小心思的还可以把秘密存入二维码中噢 视频源网址:http://www.imooc.com/learn/531 点击下载jar包 ...
最新文章
- 怎么关闭wordpress评论
- Windows批量添加防火墙例外端口
- 新的开始,连菜鸟都算不上的程序媛
- k3note Android8,联想乐檬K3 Note官方稳定版 最新VIBE刷机包 精简优化 完美加入Root权限...
- python新手程序员工资-程序员吐槽新同事:连我实习水平都不到,工资是我的1.7倍...
- QT的 QAndroidJniObject类的使用
- [蓝桥杯][算法提高VIP]质数的后代-质数筛
- 怎样让计算机快速开机,怎样设置可以让电脑快速启动开机.doc
- java jri_Java调用R(二)_JRI | 学步园
- 两个 Integer 数值之间不建议使用 “==” 进行比较
- My first project
- mybatis中#{}和${}
- Python 植物大战僵尸代码实现
- Pickit 3 Programmer使用说明及 烧写程序步骤
- 矩阵可逆与行列式关系的一个直观推导
- python中写公式_使用Python书写的公式编辑器
- 蓝桥杯练习题之数列特征
- 微信js-sdk 微信自定义分享显示图片和描述不显示
- 设置漂亮的eclipse主题(Theme)风格
- A Typical Homework (a.k.a Shi Xiong Bang Bang Mang) UVA - 12412
热门文章
- Android 高德地图在清除所有Marker,清除某一个MarKer
- 腾讯地图 marker 从地图上清空
- Win XP必须禁止的服务
- php的strpos不支持数字,php使用strpos判断字符串中数字类型子字符串出错的解决方法 原创...
- ie 调用java的时候报错,调用javabean的非常郁闷的异常。
- java桥_java 泛型--桥方法
- swagger接口文档使用
- c语言mergesort 参数,归并排序C语言兑现MergeSort
- mysql运营_为线上运营Mysql数据库设置从库
- 【C语言进阶深度学习记录】八 C语言中void的分析