Python中父進程與子進程


from multiprocessing import Process import time ##從程序中啟動進程的兩種方式:

def task(i): print('%s start!'% i) time.sleep(2) print('%s stop!' % i) #方法一:
if __name__ == '__main__':      #在window系統中
 p = Process(target=task,args=('a',))    #設置一個進程對象,執行task,傳入參數字符串a,args需要傳入元組
    p.start()                               #啟動進程
    p.join()                                #父進程必須等到子進程完成后才能繼續執行,可設置等待超時時間
    print('這是主進程!') #方法二:
class Myprocess(Process):       #創建一個繼承Process的類
    def run(self): task('a')               #設置需要啟動的進程

if __name__ == '__main__': w = Myprocess() w.start() w.join() print('這是主進程!') ##進程對象常用屬性
if __name__ == '__main__': p = Process(target=task,args=('a',),name='process-1')    #name屬性可以設置進程的名稱
 p.start() p.join() # 讓父進程等待子進程結束,父進程讓出了CPU執行權
   print(p.name)        # 進程名稱
   print(p.pid)         # 獲取這個進程的id
   p.terminate()        # 結束子進程
   print(p.is_alive())  # 進程是否還存活

   # p這個進程的父進程是當前運行的這個進程
   import os print(os.getpid())   # 當前自己進程的id
   print(os.getppid())  # 父進程的id


##父進程與子進程執行的先后順序
''' 父進程一定先執行 一旦啟動子進程,后續的代碼就並發,沒有先后順序 如果父進程需要等待子進程結束后才能執行 '''


##僵屍進程與孤兒進程
''' 僵屍進程: 一個進程任務執行完就死亡了,但是操作系統不會立即將其清理,為的是開啟這個子進程的父進程可以訪問到這個子進程的信息 孤兒進程 : 一個父進程已經死亡,然而他的子進程還在執行,這時候操作系統會接管這些孤兒進程 '''

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM