守护进程是可以一直运行而不阻塞主程序退出。要标志一个守护进程,可以将process实例的daemon属性设置为true。代码如下:
import osimport timeimport randomimport sysfrom multiprocessing import process,current_processdef daemon(): p = current_process() print starting id%d prccess%s\n % (p.pid,p.name) sys.stdout.flush() time.sleep(3) print exiting:%s\n % p.name sys.stdout.flush()def main(): p = process(name=daemon,target=daemon) p.daemon=true p.start()if __name__==__main__: main() time.sleep(1)
由于主进程会在1秒后退出,守护进程的 print exiting:%s\n % p.name这句是看不到的。
若想看到守护进程的 print exiting:%s\n % p.name语句输出,可以利用join,主进程等待守护进程的退出后再退出,即在,p.start()后添加p.join()然后把time。sleep(1)删除
希望本文所述对大家的python程序设计有所帮助。