- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我是python编程的新手,我的理解是一个进程可以是一个守护进程,但是一个守护进程模式下的线程,我无法理解这个用例,我会请求python大师帮助我在理解这一点。
最佳答案
下面是一些使用线程的基本代码:
import Queue
import threading
def basic_worker(queue):
while True:
item = queue.get()
# do_work(item)
print(item)
queue.task_done()
def basic():
# http://docs.python.org/library/queue.html
queue = Queue.Queue()
for i in range(3):
t = threading.Thread(target=basic_worker,args=(queue,))
t.daemon = True
t.start()
for item in range(4):
queue.put(item)
queue.join() # block until all tasks are done
print('got here')
basic()
当你运行它时,你会得到
% test.py
0
1
2
3
got here
现在注释掉这一行:
t.daemon = True
再次运行它,您会看到脚本打印相同的结果,但挂起。主线程结束(注意 got here
已打印),但第二个线程永远不会结束。
相反,当t.daemon
设置为True
时,线程t
在主线程结束时终止。
请注意,“守护线程”与 daemon processes 关系不大。 .
关于python - threading.Thread 的 setDaemon() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5127401/
如何在 C# 中将线程设置为守护线程? 最佳答案 虽然您已经回答了您的自己的问题,但我仍想详细说明一下。 在 C# .NET 中,与 Java 不同 C# Background threads
想问线程启动前的setDaemon(false)是否多余(构造函数中已经有setDaemon(false)),如果不是有什么区别?无论如何,我从某个网站复制了这段代码。 import java.lan
我正在运行以下代码来理解守护线程概念和线程终止。即使 main 方法完成后,程序仍会继续打印。我在这里错过了什么吗? package threading; public class ThreadInt
我最近需要为我的 Scala 应用程序添加一个关闭钩子(Hook),我发现 Scala 为这个应用程序提供了一个名为 ShutdownHookThread 的帮助程序。 .在它的源代码中,我注意到 i
本文整理了Java中org.geotools.util.WeakCollectionCleaner.setDaemon()方法的一些代码示例,展示了WeakCollectionCleaner.setD
本文整理了Java中org.I0Itec.zkclient.ZkEventThread.setDaemon()方法的一些代码示例,展示了ZkEventThread.setDaemon()的具体用法。这
我正在为我的应用程序创建一个服务线程,这个线程将执行后台任务,因此只有当我的主线程正在运行时它才会被使用。 那么我应该将它声明为守护进程吗? 最佳答案 在 Android 上,最好确保明确管理线程。告
我是python编程的新手,我的理解是一个进程可以是一个守护进程,但是一个守护进程模式下的线程,我无法理解这个用例,我会请求python大师帮助我在理解这一点。 最佳答案 下面是一些使用线程的基本代码
本文整理了Java中com.sun.grizzly.util.WorkerThreadImpl.setDaemon()方法的一些代码示例,展示了WorkerThreadImpl.setDaemon()
最近我修复了 Tomcat Shutdown 中的一个错误。这是由于当 Tomcat 尝试自行关闭时一些线程卡在那里。 我所做的与此类似: https://github.com/craigmingta
我是一名优秀的程序员,十分优秀!