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的運行 |