# 守护进程
# 子进程转换成的守护进程
# 守护进程会随着主进程的代码执行完毕而结束
# 下面的例子,当主进程执行结束了,但子进程还在执行,子进程没有结束
# import time
# from multiprocessing import Process
#
#
# def func():
# while True:
# time.sleep(0.5)
# print('我还活着')
#
# if __name__ == '__main__':
# Process(target=func).start()
# i = 0
# while i < 10:
# print('我socketserver')
# time.sleep(1)
# i += 1
# 如果想要当主进程执行结束了,让其子进程也跟着结束,守护进程就可以达到这种情况,效果是当主进程结束时,守护进程也就结束了
# import time
# from multiprocessing import Process
#
#
# def func():
# while True:
# time.sleep(0.5)
# print('我还活着')
#
# if __name__ == '__main__':
# p = Process(target=func)
# p.daemon = True # 设置这个子进程为守护进程,必须在start之前设置
# p.start()
# i = 0
# while i < 5:
# print('我socketserver')
# time.sleep(1)
# i += 1
# 下面这个例子,创建了一个子进程、一个守护进程、当主进程代码执行完了后,守护进程也结束了,但是func2子进程还在执行。
# 说明守护进程会随着父进程的执行结束而结束,而子进程的生命周期如果比父进程的生命周期长,则父进程执行结束后,子进程依然会执行
# import time
# from multiprocessing import Process
#
#
# def func():
# while True:
# time.sleep(0.5)
# print('我还活着')
#
# def func2():
# print('in func2 start')
# time.sleep(10)
# print('in func2 finished')
#
# if __name__ == '__main__':
# p = Process(target=func)
# p.daemon = True # 设置这个子进程为守护进程,必须在start之前设置
# p.start()
#
# Process(target=func2).start()
#
# i = 0
# while i < 5:
# print('我socketserver')
# time.sleep(1)
# i += 1
import time
from multiprocessing import Process
def func():
while True:
time.sleep(0.5)
print('我还活着')
def func2():
print('in func2 start')
time.sleep(10)
print('in func2 finished')
if __name__ == '__main__':
p = Process(target=func)
p.daemon = True # 设置这个子进程为守护进程,必须在start之前设置
p.start()
p2 = Process(target=func2) # 在创建一个子进程
p2.start()
print(p2.is_alive()) # 判断进程是否还活着,活着返回True,没有活着返回Falsh
p2.terminate() # 结束一个子进程的方法,并不是调用此方法后,进程立马就被结束掉,而是要等待一个操作系统的响应过程时间
time.sleep(2)
print(p2.is_alive()) # 判断进程是否还活着,活着返回True,没有活着返回Falsh,这里返回了Falsh
print(p2.name) # 查看进程的属性,名字
print(p2.pid) # 查看进程的属性,pid
i = 0
while i < 5:
print('我socketserver')
time.sleep(1)
i += 1