2012-03-06 68 views

回答

43

按照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://stackoverflow.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

19

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

相關問題