鱼C论坛

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

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

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

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

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

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


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


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


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

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

  26.     # 启动子进程并执行任务
  27.     s.start()
  28.     d.start()
  29.     time.sleep(1)
  30.     print('主进程执行完毕...')

复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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


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


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


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

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

  26.     # 启动子进程并执行任务
  27.     s.start()
  28.     d.start()
  29.     time.sleep(1)
  30.     print('主进程执行完毕...')

复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-28 21:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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