デーモン
天皇の周り、 - - 皇帝死んだ犠牲の犠牲者が古い宦官に従うことを主なプロセスは、プロセスが古い宦官のように、彼のプロセス、デーモンを守るために設定されている、子プロセスを作成します。
デーモンについて2つの点を強調する必要があります。
まず:デーモンは、メインプロセスのコード実行の終了後に終了します
第二:デーモンの中にはもはやそうでない場合は例外をスローし、子プロセスを回すことができません:AssertionErrorが:鬼神のプロセスは、子を持つことを許可されていません
我々は二つのタスクを同時に実行する必要がある場合は、マスター・プロセスを開き、子プロセスはもはや必要な主なタスクの終了後工程でOK、もしタスクの子プロセスを実行するためにあったが、その後、子プロセスにする必要がありますデーモンの前に開くように設定されています。メインプロセスコードは、デーモンが即座に終了、終了を実行します
from multiprocessing import Process
import time
import random
def task(name):
print('%s is piaoing' %name)
time.sleep(random.randrange(1,3))
print('%s is piao end' %name)
if __name__ == '__main__':
p=Process(target=task,args=('egon',))
p.daemon=True #一定要在p.start()前设置,设置p为守护进程,禁止p创建子进程,并且父进程代码执行结束,p即终止运行
p.start()
print('主') #只要终端打印出这一行内容,那么守护进程p也就跟着结束掉了
二つの演習
次のコードの実行結果がどのような条件を有していてもよく考えてみましょうか?なぜ?
from multiprocessing import Process
import time
def foo():
print(123)
time.sleep(1)
print("end123")
def bar():
print(456)
time.sleep(3)
print("end456")
if __name__ == '__main__':
p1=Process(target=foo)
p2=Process(target=bar)
p1.daemon=True
p1.start()
p2.start()
print("main-------")