是什么sys.exit(0)和os._exit之间的差异(0)

问题描述:

请帮我在功能澄清这两个Python语句的概念差方面:是什么sys.exit(0)和os._exit之间的差异(0)

  1. sys.exit(0)

  2. os._exit(0)

+4

您是否查找了文档? – jdi 2012-03-06 20:33:19

按照documentation

os._exit(): 

退出状态为n个过程,而不调用清除处理,刷新stdio的缓冲区等

注意的标准方式退出是sys.exit(n)_exit()通常应该只在fork()之后的子过程中使用。

+1

在我的程序中,我启动了多个线程,我想要的是当任何线程中有一个异常时,整个程序都应该终止。我使用sys.exit(1)除了线程,但这只能从单线程退出而不是从程序中退出。所以我用os_exit(1)是这个好方法吗? – 2012-03-06 20:42:29

+0

@AamirAdnan:见http://*.com/questions/905189/why-does-sys-exit-not-exit-when-called-inside-a-thread-in-python – NPE 2012-03-06 20:46:13

+0

非常感谢.. aix – 2012-03-06 21:08:17

os._exit调用C函数_exit()这不立即程序 终止。请注意声明“永远不会返回”。

sys.exit()raise SystemExit()完全相同。它引发了一个可能被调用者捕获到的Python异常( )。

原文:http://bytes.com/topic/python/answers/156121-os-_exit-vs-sys-exit

+0

这里引用:http://bytes.com/topic/python/answers/156121-os-_exit-vs-sys-exit – aleroot 2012-03-06 20:41:32

+0

@aleroot - 编辑。 – prelic 2012-03-06 20:55:53