博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
守护进程vs 守护线程
阅读量:6498 次
发布时间:2019-06-24

本文共 1843 字,大约阅读时间需要 6 分钟。

# #守护进程from multiprocessing import Processimport os,time,randomdef task():    print('%s is running' %os.getpid())    time.sleep(2)    print('%s is done' %os.getpid())    # p = Process(target=time.sleep, args=(3,))    # p.start()if __name__ == '__main__':    p=Process(target=task)    p.daemon = True #1、必须在p.start()之前 2:守护进程不能开启子进程    p.start()    # p.join()    print('主')##     '''#     举例说明守护进程的应用场景:#         假设有两个任务要干,要玩出并发的效果,使用进程的话可以让主进程#         执行一个任务,然后开启一个子进程执行一个任务。##         如果这两个任务毫无关系,那么就像上面这么做就可以#         如果主进程的任务在执行完毕后,子进程的任务没有存在的意义了#         那么该子进程应该在开启之前就被设置成守护进程#     '''

 迷人的例子

#主进程代码运行完毕,守护进程就会结束from multiprocessing import Processfrom threading import Threadimport timedef foo():    print('start 123')    time.sleep(1)    print('end 123')def bar():    print('start 456')    time.sleep(1)    print('end 456')if __name__ == '__main__':    p1 = Process(target=foo)    p2 = Process(target=bar)    p1.daemon = True    p1.start()    p2.start()    print('main----------')# main----------# start 456# end 456#打印该行则主进程代码结束,则守护进程p1应该被终止,# 可能会有p1任务执行的打印信息123,因为主进程打印main----时,p1也执行了,但是随即被终止

 

 

守护线程

  等到该进程内所有非守护线程都运行完才死掉

from threading import Threadimport time,osdef run():    print('%s is running '%os.getpid())    time.sleep(2)    print('%s is done ' %os.getpid())if __name__ == '__main__':    t = Thread(target=run)    t.daemon = True    t.start()    print('主')# 11004 is running# 主

迷人的例子:

from threading import Threadimport timedef foo():    print('start 123')    time.sleep(1)    print('end 123')def bar():    print('start 456')    time.sleep(1)    print('end 456')if __name__ == '__main__':    p1 = Thread(target=foo)    p2 = Thread(target=bar)    p1.daemon = True    p1.start()    p2.start()    print('main----------')# start 123# start 456# main----------# end 123# end 456

 

转载于:https://www.cnblogs.com/jassin-du/p/7989175.html

你可能感兴趣的文章
GMTC 大前端时代前端监控的最佳实践
查看>>
办公协同系统功能?办公协同系统主要特点?
查看>>
openStack调试
查看>>
阿里最强热修复:Sophix 超高速集成与踩坑
查看>>
web架构之mysql服务器
查看>>
你必须了解的微服务架构设计的10个要点!
查看>>
零基础学习Python需要注意的几个点,Python培训机构排名
查看>>
HDFS的shell和API操作
查看>>
MyEclipse教程:Web开发——创建Web片段项目
查看>>
如何编辑PDF文件,PDF编辑器如何使用
查看>>
程序员笔记|如何编写优雅的Dockerfile
查看>>
再看C
查看>>
匹配ip等的正则式
查看>>
CPU值满resmgr:cpu quantum造成的Oracle等待事件解决办法
查看>>
ORACLE RAC 更改instance name完整步骤
查看>>
【Cocos2d开发】Cocos2d下安卓环境的搭建
查看>>
vsftpd用户配置 No.2
查看>>
Ovirt 安装部署方法
查看>>
shell
查看>>
Linux时间同步
查看>>