立即學習:https://edu.csdn.net/course/play/24458/296427?utm_source=blogtoedu
1.pid與ppid:pid進程編碼,ppid進程的父進程編碼;os.getpid()查看正在運行的進程編碼,os.getppid()查看正在運行進程的父進程編碼
?
2.僵尸進程:子進程結束后,其程序不在運行狀態,但是其進程編碼依舊還是可以查看,即進程編碼還存在;所有的子進程都會經歷僵尸進程這個過程
?
3.孤兒進程:即子進程還沒有結束還處于運行狀態的情況下,其父進程卻先結束了,這時候的子進程就稱之為孤兒進程
?
4.Process類對象的其他方法與屬性
1)start():進程向操作系統發送一個信號,告訴操作系統啟動進程,如果有多個進程,其運行的順序是由操作系統決定的而不是由代碼的先后順序決定的;
?
2)join():讓主進程處于等待狀態,等待指定的子進程運行結束后,再運行主進程,即等子進程編程僵尸進程;
?
3)is_alive():判斷進程是否已經結束,結束返回False,運行中返回True
?
4)terminate():終止指定的正在運行的進程,與start方法是相反的,也只是向操作系統發送一個信號,至于什么時候執行這個信號由操作系統決定
?
'''
并發,并發方式運行代碼時間會比較短,一般與運行時間最長的進程的時間比較接近
'''
p1= process(name1)#p是一個對象實例化
p2= process(name2)
p3= process(name3)p_l = [p1,p2,p3]for p in p_l:p.start()for p in p_l:p.join()'''
串行,運行時間接近與所有進程運行的時間總和
'''
p1= process(name1)#p是一個對象實例化
p2= process(name2)
p3= process(name3)p_l = [p1,p2,p3]for p in p_l:p.start()p.join()
?