6守护父进程的子进程/子线程

"""守护父进程的子进程"""


"""
可以在调用进程实例对象的方法start()之前将属性daemon的值设置为True,从而将进程设置为守护进程。
守护进程是为了守护父进程而存在的子进程,当父进程结束时,守护进程没有存在的意义。
守护进程会随着父进程的结束而立刻结束。
"""

from multiprocessing import current_process, Process
import time

class MyProcess(Process):
def run(self):
print('子进程%d启动' % current_process().pid)
time.sleep(2)
print('子进程%d结束' % current_process().pid)


def main():
print('父进程%d启动' % current_process().pid)

mp = MyProcess()

mp.daemon = True
mp.start()

time.sleep(1)

print('父进程%d结束' % current_process().pid)

if __name__ == '__main__':
main()

####################################################################

"""守护父线程的子线程"""


"""
在创建线程实例对象时,可以将参数daemon的值设置为True,从而将线程设置为守护线程。
此外,也可以在调用线程实例对象的方法start()之前将属性daemon的值设置为True,从而将线程
设置为守护线程。
守护线程是为了守护父线程而存在的子线程,当父线程结束时,守护线程没有存在的意义。
守护线程会随着父线程的结束而立刻结束。
"""

from threading import current_thread, Thread
import time

class Mythread(Thread):
def run(self):
print('子线程%s启动' % current_thread().getName())
time.sleep(2)
print('子线程%s结束' % current_thread().getName())


print('父线程%s启动' % current_thread().getName())

mt = Mythread()
mt.setDaemon(True)
#mt.daemon = True
mt.start()

time.sleep(1)

print('父线程%s结束' % current_thread().getName())
posted @ 2020-05-30 17:45  udbful  阅读(318)  评论(0)    收藏  举报