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程序了 ...
随机推荐
- C++ string 字符串查找匹配
在写C++程序中,总会遇到要从一个字符串中查找一小段子字符串的情况,对于在C中,我们经常用到strstr()或者strchr()这两种方法.而对于C++的string,我们往往会用到find(). C ...
- iOS开发-DatePicker控件
时间控件不管是Android还是iOS中都是必然存在的一个控件,具体的效果大同小异,显示日期,时间,iOS中有四种方式可以选择,Time, Date,Date and Time , Count Do ...
- SonarQube代码质量管理平台 的安装、配置与使用
SonarQube是管理代码质量一个开放平台,可以快速的定位代码中潜在的或者明显的错误,下面将会介绍一下这个工具的安装.配置以及使用. 准备工作: 1.jdk(不再介绍) 2.sonarqube:ht ...
- jQuery EasyUI 教程-Tooltip(提示框)
<!DOCTYPE html> <html> <head> <title>jQuery Easy UI</title> <meta c ...
- 升级mojave后的小问题解决
首先是xcode没了,我到苹果软件市场上重新下载了一个,可以了. 然后是virtualbox无法打开了,现实版本不兼容,我到官网重新下载了一个最新的6.0.然后就可以正常打开了,并且是无感升级,原来的 ...
- (转)AssetBundle系列——游戏资源打包(二)
转自:http://www.cnblogs.com/sifenkesi/p/3557290.html 本篇接着上一篇.上篇中说到的4步的代码分别如下所示: (1)将资源打包成assetbundle,并 ...
- 【已解决】Python脚本运行出现语法错误:IndentationError: unindent does not match any outer indentation level
转自:http://www.crifan.com/python_syntax_error_indentationerror/comment-page-1/ [问题] 一个python脚本,本来都运行好 ...
- Solr打分出错
solr支持给某Field打分,在验证的过程的过程中出现错误:ERROR: [doc=likehua] cannot set an index-time boost, unindexed or nor ...
- 使用js对select动态添加和删除OPTION
<select id="ddlResourceType" onchange="getvalue(this)"> </select> 动态 ...
- PHPCMS详细文件目录结构
PHPCMS详细文件目录结构 根目录 | – api 接口文件目录 | – caches 缓存文件目录 | – configs 系统配置文件目录 | – caches_* 系统缓存目录 ...