淺談Python中進(jìn)程的創(chuàng)建與結(jié)束
一、進(jìn)程的創(chuàng)建
但凡是硬件,都需要有操作系統(tǒng)去管理,只要有操作系統(tǒng),就有進(jìn)程的概念,就需要有創(chuàng)建進(jìn)程的方式,一些操作系統(tǒng)只為一個應(yīng)用程序設(shè)計,比如微波爐中的控制器,一旦啟動微波爐,所有的進(jìn)程都已經(jīng)存在。
而對于通用系統(tǒng)(跑很多應(yīng)用程序),需要有系統(tǒng)運行過程中創(chuàng)建或撤銷進(jìn)程的能力,主要分為4中形式創(chuàng)建新的進(jìn)程:
- 系統(tǒng)初始化(查看進(jìn)程linux中用ps命令,windows中用任務(wù)管理器,前臺進(jìn)程負(fù)責(zé)與用戶交互,后臺運行的進(jìn)程與用戶無關(guān),運行在后臺并且只在需要時才喚醒的進(jìn)程,稱為守護(hù)進(jìn)程,如電子郵件、web頁面、新聞、打印)
- 一個進(jìn)程在運行過程中開啟了子進(jìn)程(如nginx開啟多進(jìn)程,os.fork,subprocess.Popen等)
- 用戶的交互式請求,而創(chuàng)建一個新進(jìn)程(如用戶雙擊暴風(fēng)影音)
- 一個批處理作業(yè)的初始化(只在大型機(jī)的批處理系統(tǒng)中應(yīng)用
無論哪一種,新進(jìn)程的創(chuàng)建都是由一個已經(jīng)存在的進(jìn)程執(zhí)行了一個用于創(chuàng)建進(jìn)程的系統(tǒng)調(diào)用而創(chuàng)建的。
UNIX和Windows創(chuàng)建進(jìn)程
關(guān)于創(chuàng)建子進(jìn)程,UNIX和Windows:
- 相同的是:進(jìn)程創(chuàng)建后,父進(jìn)程和子進(jìn)程有各自不同的地址空間(多道技術(shù)要求物理層面實現(xiàn)進(jìn)程之間內(nèi)存的隔離),任何一個進(jìn)程的在其地址空間中的修改都不會影響到另外一個進(jìn)程。
- 不同的是:在UNIX中,子進(jìn)程的初始地址空間是父進(jìn)程的一個副本,提示:子進(jìn)程和父進(jìn)程是可以有只讀的共享內(nèi)存區(qū)的。但是對于Windows系統(tǒng)來說,從一開始父進(jìn)程與子進(jìn)程的地址空間就是不同的。
二、進(jìn)程的結(jié)束
- 正常退出(自愿,如用戶點擊交互式頁面的叉號,或程序執(zhí)行完畢調(diào)用發(fā)起系統(tǒng)調(diào)用正常退出,在linux中用exit,在windows中用ExitProcess)
- 出錯退出(自愿,python a.py中a.py不存在)
- 嚴(yán)重錯誤(非自愿,執(zhí)行非法指令,如引用不存在的內(nèi)存,1/0等,可以捕捉異常,try…except…)
- 被其他進(jìn)程殺死(非自愿,如kill -9)
到此這篇關(guān)于淺談Python中進(jìn)程的創(chuàng)建與結(jié)束的文章就介紹到這了,更多相關(guān)Python進(jìn)程創(chuàng)建與結(jié)束內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python模塊學(xué)習(xí) filecmp 文件比較
filecmp模塊用于比較文件及文件夾的內(nèi)容,它是一個輕量級的工具,使用非常簡單。python標(biāo)準(zhǔn)庫還提供了difflib模塊用于比較文件的內(nèi)容。關(guān)于difflib模塊,且聽下回分解2012-08-08
anaconda虛擬環(huán)境python?sklearn庫的安裝過程
Anaconda是專注于數(shù)據(jù)分析的Python發(fā)行版本,包含了conda、Python等190多個科學(xué)包及其依賴項,這篇文章主要給大家介紹了關(guān)于anaconda虛擬環(huán)境python?sklearn庫的安裝過程,需要的朋友可以參考下2023-11-11
pandas 對日期類型數(shù)據(jù)的處理方法詳解
這篇文章主要介紹了pandas 對日期類型數(shù)據(jù)的處理方法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-08-08
tensorflow 動態(tài)獲取 BatchSzie 的大小實例
這篇文章主要介紹了tensorflow 動態(tài)獲取 BatchSzie 的大小實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06

