python 進程

import multiprocessing
import time

def task01():
    for i in range(5):
        time.sleep(1)
        print('I am task01'+str(i))


def task02():
    for i in range(5):
        time.sleep(1)
        print('I am task02'+str(i))

if __name__ == '__main__':
    p1 = multiprocessing.Process(target=task01)   # multiprocessing.Process創建了子進程對象p1
    p2 = multiprocessing.Process(target=task02)
    p1.daemon = True  # 設置p1子進程爲守護進程
    p1.start()   #子進程 啓動
    p2.start()
    print('I am main task')   #

# 1.當主進程結束後,會發一個消息給子進程(守護進程),守護進程收到消息,則立即結束
# 2.CPU是按照時間片輪尋的方式來運行多進程的。哪個合適的哪個運行,如果你的子進程裏都有time.sleep。
# 那我CPU爲了不浪費資源,肯定先去幹點其他的事情啊。
# 守護進程主要用來做與業務無關的任務,無關緊要的任務,可有可無的任務,比如內存垃圾回收,某些方法的執行時間的計時等

 

p.start 開始執行子線程
p.name 查看子進程的名稱
p.pid 查看子進程的id
p.is_alive 判斷子進程是否存活
p.join(timeout)

阻塞主進程,當子進程p運行完畢後,再解開阻塞,讓主進程運行後續的代碼

如果timeout=2,就是阻塞主進程2s,這2s內主進程不能運行後續的代碼。過了2s後,就算子進程沒有運行完畢,主進程也能運行後續的代碼

p.terminate 終止子進程p的運行
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章