鱼C论坛

 找回密码
 立即注册
查看: 2285|回复: 1

[已解决]线程的Daemon有什么作用?

[复制链接]
发表于 2020-10-28 17:18:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
线程的Daemon有什么作用?
最佳答案
2020-10-28 18:42:12
案例:
import threading
import time
import os


def sing(num, name):
    #查看当前线程的信息
    print(threading.current_thread())
    for i in range(num):
        print(f'{name}在唱歌{i + 1}次...')
        time.sleep(0.5)


def dance(num, name):
    # 查看当前线程的信息
    print(threading.current_thread())
    for i in range(num):
        print(f'{name}在跳舞{i + 1}次...')
        time.sleep(0.5)


if __name__ == '__main__':  # 主进程

    # 创建子线程对象并指定执行的任务名
    # args传参,传递元组,仅一个参数时要求有个逗号,表示元组
    s = threading.Thread(target=sing, args=(3, 'mike'))
    # kwargs传参,传递字典
    d = threading.Thread(target=dance, kwargs={'num': 5, 'name': 'jake'})
    #设置守护主进程,当主进程执行完毕,子线程剩余的代码不再执行,自动销毁
    s.setDaemon(True)
    d.setDaemon(True)

    # 启动子进程并执行任务
    s.start()
    d.start()
    time.sleep(1)
    print('主进程执行完毕...')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-28 18:42:12 | 显示全部楼层    本楼为最佳答案   
案例:
import threading
import time
import os


def sing(num, name):
    #查看当前线程的信息
    print(threading.current_thread())
    for i in range(num):
        print(f'{name}在唱歌{i + 1}次...')
        time.sleep(0.5)


def dance(num, name):
    # 查看当前线程的信息
    print(threading.current_thread())
    for i in range(num):
        print(f'{name}在跳舞{i + 1}次...')
        time.sleep(0.5)


if __name__ == '__main__':  # 主进程

    # 创建子线程对象并指定执行的任务名
    # args传参,传递元组,仅一个参数时要求有个逗号,表示元组
    s = threading.Thread(target=sing, args=(3, 'mike'))
    # kwargs传参,传递字典
    d = threading.Thread(target=dance, kwargs={'num': 5, 'name': 'jake'})
    #设置守护主进程,当主进程执行完毕,子线程剩余的代码不再执行,自动销毁
    s.setDaemon(True)
    d.setDaemon(True)

    # 启动子进程并执行任务
    s.start()
    d.start()
    time.sleep(1)
    print('主进程执行完毕...')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-18 04:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表