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学习笔记——多进程二 进程的退出的更多相关文章

  1. Python学习笔记(二)——列表

    Python学习笔记(二)--列表 Python中的列表可以存放任何数据类型 >>> list1 = ['Hello','this','is','GUN',123,['I','Lov ...

  2. 【Python学习笔记之二】浅谈Python的yield用法

    在上篇[Python学习笔记之一]Python关键字及其总结中我提到了yield,本篇文章我将会重点说明yield的用法 在介绍yield前有必要先说明下Python中的迭代器(iterator)和生 ...

  3. Python学习笔记(二):条件控制语句与循环语句及常用函数的用法

    总结的内容: 1.条件控制语句 2.while循环语句 3.for循环语句 4.函数的用法 一.条件控制语句 1.介绍 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决 ...

  4. Python学习笔记(十二)—Python3中pip包管理工具的安装【转】

    本文转载自:https://blog.csdn.net/sinat_14849739/article/details/79101529 版权声明:本文为博主原创文章,未经博主允许不得转载. https ...

  5. python学习笔记—— 多进程中的 孤儿进程和僵尸进程

    1 基本概述 1.1 孤儿进程和僵尸进程 父进程创建子进程后,较为理想状态是子进程结束,父进程回收子进程并释放子进程占有的资源:而实际上,父子进程是异步过程,两者谁先结束是无顺的,一般可以通过父进程调 ...

  6. Python 学习笔记 多进程 multiprocessing--转载

    本文链接地址 http://quqiuzhu.com/2016/python-multiprocessing/ Python 解释器有一个全局解释器锁(PIL),导致每个 Python 进程中最多同时 ...

  7. python 学习笔记 多进程

    要让python程序实现多进程,我们先了解操作系统的相关知识 Unix/Linux操作系统提供了一个fork()系统调用,他非常特殊,普通的函数调用,调用一次,返回一次,但是fork调用一次, 返回两 ...

  8. Python学习笔记(二)网络编程的简单示例

    Python中的网络编程比C语言中要简洁很多,毕竟封装了大量的细节. 所以这里不再介绍网络编程的基本知识.而且我认为,从Python学习网络编程不是一个明智的选择.   简单的TCP连接 服务器代码如 ...

  9. Python学习笔记(二)使用Sublime Text编写简单的Python程序()

    一.使用Sublime Text编写Python 1.点击“文件” →”新建文件“ 2.点击”文件“→”保存“,并保存为.py文件 此时已经创建好Python文件了,接下来就可以编写Python程序了 ...

随机推荐

  1. 三个和数组有关的程序题目(C++)

    题目一:有n个整数,使前面各数顺序向后移动m个位置 问题描述: 有n个整数,使前面各数顺序向后移动m个位置,最后m个数变成最前m个数 程序代码: #include<iostream> us ...

  2. Android中样式及主题

    Android应用程序中不可避免的需要使用的样式和主题,样式指定一般指定View的高度.字体.字体颜色.背景,Android里的样荐定义在Style.xml文件里.主题也是一种样式,只不过它是应用在整 ...

  3. 搭建个人博客-hexo+github

    自己也算是摸爬滚打搭建成功,然后自己再重新安装部署一遍,把完整步骤分享给大家,同时最后有一些连接,如果我的步骤不行,大家可以参考其他人的(这个有点花费时间,大家提前有个心理准备 - _-) 一.第一步 ...

  4. linux CentOS7 安装spark

    上次安装了scala-2.11.8,这次安装spark-2.1.0版本 1.下载spark-2.1.0 打开terminal 进入当前用户目录 /home/sks wget http://d3kbcq ...

  5. 基于Sql Server 2008的分布式数据库的实践(终结)

    学习.操作心得 以前在做网站程序的时候一直用的是MYSQL,但是网上搜到MYSQL不支持分布式操作,然后便开始查询MSSQL的分布式数据库的设计与操作,后来在网上找到了<基于SQL SERVER ...

  6. Python中参数多个值的表示法

    今天在写Python脚本时,调用了数据管理-制图综合-融合工具,在ArcGIS里操作的参数设置如下: 如果融合字段只有一个那好办,如果融合字段有多个我该怎么表达,查看帮助文档中的示例代码明白了: 所以 ...

  7. Eclipse 之使用技巧积累(一)

    1.代码缩进 选中缩进代码,然后点击“Tab”键增加缩进. 2.代码退格 选中退格代码,然后按住“Shift”键,再点击“Tab”键退格. 3.无格式代码格式化 (1)默认快捷键:Ctrl + Shi ...

  8. Firefox 之 应用小结

    1. 调试脚本       做前端开发的朋友应该对FireFox再熟悉不过了,FireFox有一个附加组件FireBug.在HTML中可以直接写   <script type="tex ...

  9. getaddrinfo()函数详解

    Socket的地址查询函数 http://blog.sina.com.cn/s/blog_988c054b010139e3.html http://www.cnblogs.com/cxz2009/ar ...

  10. 使用javacv录像,同时进行讯飞声纹认证

    由于最近的demo中需要在活体检测的同时进行音视频录制 ,  尝试使用MediaRecord和camera来录制视频 , 然而Camera.onPreviewFrame 不能与 MediaRecord ...