Soy un novato en la programación de python, lo que entiendo es que un proceso puede ser un daemon, pero un hilo en modo daemon, no podría entender el uso de esto, solicitaría el pitón gurús para ayudarme a entender esto. Gracias por adelantado.Función setDaemon en el hilo
Respuesta
Aquí hay un código básico utilizando roscado:
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()
Cuando se ejecuta, se obtiene
% test.py
0
1
2
3
got here
Ahora comentario la línea:
t.daemon = True
ejecutarlo de nuevo, y verá que el script imprime el mismo resultado, pero se cuelga. El hilo principal termina (obsérvese que se imprimió got here
), pero el segundo hilo nunca termina.
Por el contrario, cuando t.daemon
se establece en True
, el hilo t
finaliza cuando termina el hilo principal.
Tenga en cuenta que "hilos daemon" tiene poco que ver con daemon processes.
Gracias, eso fue útil – hue
¿Debería ser t.SetDaemon (True)? – GreenAsJade
@GreenAsJade: [t.setDaemon (Verdadero)] (http://docs.python.org/2/library/threading.html#threading.Thread.setDaemon) es parte de la antigua API. Hoy en día, [t.daemon = True] (http://docs.python.org/2/library/threading.html#threading.Thread.daemon) es la forma recomendada de convertir 't' en un hilo de daemon. – unutbu
Módulo La cola ha cambiado de nombre empezando por Python3 para reflejar mejor el hecho de que hay varias clases de cola (lifo, fifo, prioridad) en el módulo. así que realice los cambios al usar este ejemplo
- 1. ¿El hilo de la función gettimeofday es seguro en Linux?
- 2. C#: cómo obtener la longitud del hilo en el hilo []
- 3. Ejecutando una función en hilo diferente en QT
- 4. llamar a una función usando hilo en xcode
- 5. Método de ejecución en el hilo principal de otro hilo
- 6. Código de ejecución en el hilo principal de otro hilo
- 7. llamando al hilo principal desde el hilo Runnable en java
- 8. Detener el hilo en python3
- 9. ¿Cómo ejecutar algo en el hilo STA?
- 10. ¿Mantener el hilo en espera es óptimo?
- 11. Diferencia entre el hilo # ejecutar y el hilo # despertar?
- 12. Compruebe si el hilo actual es el hilo principal
- 13. iPhone: ¿Cómo determinar si el hilo es el hilo principal?
- 14. Corregir el hilo destruir
- 15. ¡Muere el hilo, realmente!
- 16. ¿Cómo atrapar una excepción en el hilo principal si la excepción ocurre en el hilo secundario?
- 17. ventana de Creación en otro hilo (no hilo principal)
- 18. ¿La función de seguridad de hilo de setlocale es?
- 19. cómo interrumpir un hilo que está esperando la función recv?
- 20. Cómo detener el hilo asynctask en android?
- 21. Decodifica imágenes en el hilo de fondo?
- 22. es + = en el hilo de python seguro?
- 23. Forzar los goroutines en el mismo hilo
- 24. ¿Cómo reiniciar el hilo en java?
- 25. iniciando un nuevo hilo en el servlet
- 26. cómo detener el hilo ASyncTask en android
- 27. Excepción de captura en el hilo oscilante
- 28. ¿Qué necesita estar en el hilo principal?
- 29. Temporizador en el hilo de Java
- 30. Nombre del hilo en el ThreadPool - C#
La mejor respuesta es http://stackoverflow.com/a/190017/260122. – clacke
Posible duplicado de [Daemon Threads Explanation] (http://stackoverflow.com/questions/190010/daemon-threads-explanation) – clacke