python学习笔记——多进程二 进程的退出
1 进程的退出函数的基础语法
1.1 进程的退出函数
进程的退出含有有os._exit([status])和sys.exit([status])两种,从数据包来看,该退出模块仅在linux或者unix系统下可用,windows系统下没有该模块
功能:退出一个进程
参数:表示进程的退出状态,0表示进程正常退出,非0表示异常退出。
区别:
(1)
os._exit() 直接将python程序终止,退出python解释器,其后代码都不会执行
sys.exit() 抛出SystemExit异常,如果该异常没有被捕获,则python解释器将会退出,捕获这个异常可以做一些额外的清理工作,0为正常退出,其他数值(1~127)表示非正常退出,可抛出异常供捕获。
(2)
os._exit() 参数为返回代码
sys.exit() 参数可传入字符串,在退出时打印一下字符串
(3)
一般情况下使用sys.exit()即可,而fork语句生成的的子进程中使用os._exit()
一般情况下sys.exit()用于主线程退出,os._exit()用于在线程中退出
1.2 退出函数的基础示例
示例1
import sys
try:
sys.exit(0)
except:
print('die')
finally:
print('cleanup')
运行结果
die cleanup
示例2
import os
try:
os._exit(0)
except:
print('die')
print('os.exit')
运行后终端没有显示输出
import os, sys
try:
os._exit(')
except:
print('die')
print('os.exit')
运行结果
die os.exit
实际上,只要是 os._exit(0) 中的参数值不为int型0,运行结果都是 die \ os.exit
2 退出函数的基本应用
os._exit()函数
import os
a = 0
while a < 10:
print("a=", a)
a += 1
if a == 5:
os._exit(0) # 只能是数值,不可以传入字符串 如果传入字符串,则会报错(TypeError: an integer is required (got type str))
print("运行结束")
运行结果
a= 0 a= 1 a= 2 a= 3 a= 4
sys.exit()函数
import sys
a = 0
while a < 10:
print("a=",a)
a += 1
try:
if a == 5:
sys.exit("exit the process")#该函数可以传入字符串
except SystemExit as e:
print(e)
print("运行结束")
运行结果
a= 0 a= 1 a= 2 a= 3 a= 4 exit the process a= 5 a= 6 a= 7 a= 8 a= 9 运行结束
python学习笔记——多进程二 进程的退出的更多相关文章
- Python学习笔记(二)——列表
Python学习笔记(二)--列表 Python中的列表可以存放任何数据类型 >>> list1 = ['Hello','this','is','GUN',123,['I','Lov ...
- 【Python学习笔记之二】浅谈Python的yield用法
在上篇[Python学习笔记之一]Python关键字及其总结中我提到了yield,本篇文章我将会重点说明yield的用法 在介绍yield前有必要先说明下Python中的迭代器(iterator)和生 ...
- Python学习笔记(二):条件控制语句与循环语句及常用函数的用法
总结的内容: 1.条件控制语句 2.while循环语句 3.for循环语句 4.函数的用法 一.条件控制语句 1.介绍 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决 ...
- Python学习笔记(十二)—Python3中pip包管理工具的安装【转】
本文转载自:https://blog.csdn.net/sinat_14849739/article/details/79101529 版权声明:本文为博主原创文章,未经博主允许不得转载. https ...
- python学习笔记—— 多进程中的 孤儿进程和僵尸进程
1 基本概述 1.1 孤儿进程和僵尸进程 父进程创建子进程后,较为理想状态是子进程结束,父进程回收子进程并释放子进程占有的资源:而实际上,父子进程是异步过程,两者谁先结束是无顺的,一般可以通过父进程调 ...
- Python 学习笔记 多进程 multiprocessing--转载
本文链接地址 http://quqiuzhu.com/2016/python-multiprocessing/ Python 解释器有一个全局解释器锁(PIL),导致每个 Python 进程中最多同时 ...
- python 学习笔记 多进程
要让python程序实现多进程,我们先了解操作系统的相关知识 Unix/Linux操作系统提供了一个fork()系统调用,他非常特殊,普通的函数调用,调用一次,返回一次,但是fork调用一次, 返回两 ...
- Python学习笔记(二)网络编程的简单示例
Python中的网络编程比C语言中要简洁很多,毕竟封装了大量的细节. 所以这里不再介绍网络编程的基本知识.而且我认为,从Python学习网络编程不是一个明智的选择. 简单的TCP连接 服务器代码如 ...
- Python学习笔记(二)使用Sublime Text编写简单的Python程序()
一.使用Sublime Text编写Python 1.点击“文件” →”新建文件“ 2.点击”文件“→”保存“,并保存为.py文件 此时已经创建好Python文件了,接下来就可以编写Python程序了 ...
随机推荐
- 第四章 mybatis批量insert
批量插入sql语句: INSERT INTO table (field1,field2,field3) VALUES ('a',"b","c"), ('a',& ...
- Oracle卸载后手工删除内容
使用deinstall卸载oracle后,手工删除Oracle数据库,方法如下: 第一步:停用全部oracle服务 第二步:删除oracle注册表运行regedit在如下路径中找到oracle相关键值 ...
- 查看centos当前版本
# rpm -q centos-release centos-release-5-4.el5.centos.1
- 【oracle】dblink创建
目的:oracle中跨数据库查询 两台数据库服务器db_A(本地)和db_B(远程192.168.1.100),db_A下用户user_a 需要访问到db_B下user_b的数据 解决:查询得知使用d ...
- 第一节,学习cocos2d-x的前期准备
1,我用的mac系统,在mac系统上装上cocos2d-x的模板 2,用doxygen工具装上API,这个非常重要,没有API的开发不叫开发,因此我们要习惯看API 3,知道怎么查看cocos2d-x ...
- angular中如何监控dom渲染完毕
刚刚看到群上一个人说,他们公司凡是用angular和jquery插件一起用的人,都被解雇了,没看到这句话之前我很惭愧的说我有这样用过,其实angular的生态系统那么完善,完全可以不用去操作任何的do ...
- Mysql自己主动备份
Mysql自己主动备份 批处理命令: set"Ymd=%date:~,4%%date:~5,2%%date:~8,2%" set"hMs=%time:~,2%%time: ...
- Js判断出生年月填写的 是否正确
var r = /^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29 ...
- 堆叠相冊效果,兼容pc和移动端
在手机端,堆叠效果的相冊是比較常见的一种图片展示方式,每一个人的思路可能会有一些不同,实现的方法不同. 本篇博客主要是分享下我的实现方法.欢迎大家提出建议,指出我的不足,先3Q啦~ 先看一下终于的效果 ...
- openerp 中文乱码及界面翻译不全
openerp中文报表乱码问题,即是字体问题,环境是ubuntu 12.04 openerp 6.1, deb all in one安装方式 一.cd usr/share/fonts/truetype ...