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

本文共 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

你可能感兴趣的文章
acdream 1018 Hotel(函数式线段树、最近公共祖先)
查看>>
Repeater和CheckBox控件(客户端和服务器端)实行全选或多条选择
查看>>
asp: AJAX Database
查看>>
游戏中的脚本语言
查看>>
“.NET技术”页面片段缓存(二)
查看>>
Microsoft NLa“.NET研究”yerApp案例理论与实践 - 多层架构与应用系统设计原则
查看>>
iOS 上传自己的库到cocoapod
查看>>
Processing编程语言简介
查看>>
批量选择用户通讯录功能
查看>>
三维模型凸包提取
查看>>
open和fopen的区别
查看>>
常见网络攻击手段原理分析(二)
查看>>
mysql----show slave status \G 说明
查看>>
基于url拦截实现权限控制
查看>>
配置ubuntu 16.04.1 LTS odoo 10.0开发环境
查看>>
idea maven 集成多模块 module
查看>>
开通博客的一些想法
查看>>
Asp.net表单自动验证(2)
查看>>
图片做提交按钮和重置按钮
查看>>
我的面试经过、结果以及感悟
查看>>