Daemon(守护与否)和join(阻塞与否)

#-*- encoding:utf-8 -*-

import sys

reload(sys)

sys.setdefaultencoding('utf-8')

import  multiprocessing

import time

def worker(interval):

print("work start:{0}".format(time.ctime()));

    time.sleep(interval)

print("work end:{0}".format(time.ctime()));

if__name__ =="__main__":

p = multiprocessing.Process(target = worker, args = (3,))

#守护,无join

#------------------主线程运行正常结束,子线程强制结束--------------------------------#

#非守护,无join

#------------------主线程正常结束-----------子线程运行正常结束(结束顺序不一定)--------------------------------#

#守护,join(阻塞)

#------------------子线程运行正常结束-----------主线程正常结束--------------------------------#

#非守护,join(阻塞)

#------------------子线程运行正常结束-----------主线程正常结束--------------------------------#

p.daemon =True#注意一个线程默认不是守护线程,也就是说默认值是False

#结论:

#☆☆☆对于含有join的代码而言,一定有主线程在子线程之后才执行完。

#☆☆☆对于没有join的代码而言:如果守护,只要主线程关闭,子线程及时没执行完也必须关闭,;

#   如果非守护,主线程与子线程结束顺序不一定

    p.start()

# p.join()#(挡住,无法执行join以后的语句)

print("end!")

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 写在前面的话 代码中的# > 表示的是输出结果 输入 使用input()函数 用法 注意input函数输出的均是字...
    FlyingLittlePG阅读 3,304评论 0赞 9
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 6,400评论 0赞 10
  • 一文读懂Python多线程 1、线程和进程 计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运...
    星丶雲阅读 1,640评论 0赞 4
  • Python 面向对象Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对...
    顺毛阅读 4,416评论 4赞 16
  • 齐凡徐 1 《我的前半生》里面的陈俊生,曾对妻子罗子君说过“我养你”。 他认为的爱,是无底线的宠溺,允许她整天对自...
    齐凡徐阅读 418评论 0赞 3

友情链接更多精彩内容