首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >python中守护进程线程与非守护进程线程

python中守护进程线程与非守护进程线程
EN

Stack Overflow用户
提问于 2020-01-05 23:54:14
回答 2查看 805关注 0票数 0

我有以下代码:

代码语言:javascript
运行
复制
import threading 
from time import sleep

def print_function1():
    while True:
        print("Hi this is function 1\n") 
        sleep(2)

if __name__ == "__main__": 
    # creating thread 
    t1 = threading.Thread(target=print_function1 ) 

    t1.daemon = True

    # starting thread 1 
    t1.start() 

    sleep(10)

    # both threads completely executed 
    print("Done!") 

现在我不能理解如果我设置了t1.daemon True或False会有什么不同,我在spider Ipython控制台中运行代码。

在这两种情况下,程序似乎都没有退出,它一直打印"Hi this is function 1“。我的假设是守护程序线程在主线程结束时将继续运行,但普通线程将退出。

有谁能解释一下。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-06 20:49:55

这个问题是因为在python shell中运行python代码时观察到守护程序线程的行为不同,在我的例子中,假设Spyder中的Ipython与从命令行运行python文件(如“python thread_example.py”)的行为不同。

从命令行运行文件会给出预期的行为。

可以参考这个堆栈溢出的答案:Python daemon thread does not exit when parent thread exits

票数 0
EN

Stack Overflow用户

发布于 2021-01-01 19:22:12

它使线程在true时在后台运行而不干扰主工作,在false时作为主线程运行

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59601576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档