1. 程式人生 > 實用技巧 >主程序會等待所有子程序執行完後再退出

主程序會等待所有子程序執行完後再退出

一、程序的特點:主程序會等待所有子程序執行結束後再結束。

解決方法:即讓主程序退出後,子程序銷燬

1、讓子程序設定成為守護主程序

子程序物件.daemon = True

2、讓主程序退出之前,先讓子程序銷燬。

子程序物件.terminate()

二:主程序會等待子程序結束後才能結束

from multiprocessing import *
from time import *


def task():
    for i in range(10):
        print("任務執行中.......")
        sleep(0.2)


if __name__
== '__main__': p = Process(target=task) p.start() # 主程序 sleep(0.5) print("over")
View Code

執行結果:

三、即讓主程序退出後,子程序銷燬

方法一:

from multiprocessing import *
from time import *


def task():
    for i in range(10):
        print("任務執行中.......")
        sleep(0.2)


if __name__ == '
__main__': p = Process(target=task) p.daemon = True # 將子程序設定為守護主程序 p.start() # 主程序 sleep(0.5) print("over")
View Code

執行結果:

方法二:

from multiprocessing import *
from time import *


def task():
    for i in range(10):
        print("任務執行中.......")
        sleep(0.2)


if
__name__ == '__main__': p = Process(target=task) # p.daemon = True # 將子程序設定為守護主程序 p.start() # 主程序 sleep(0.5) p.terminate() # 退出主程序之前,銷燬子程序 print("over")
View Code

執行結果: