Me gustó la capacidad de convertir una función en un hilo sin la línea innecesaria para definir una clase. Sé acerca de _thread, sin embargo, parece que no debes usar _thread. ¿Existe un equivalente de buenas prácticas de thread.start_new_thread para python 3?¿Qué pasó con thread.start_new_thread en python 3
12
A
Respuesta
21
threading.Thread(target=some_callable_function).start()
o si desea pasar argumentos,
threading.Thread(target=some_callable_function,
args=(tuple, of, args),
kwargs={'dict': 'of', 'keyword': 'args'},
).start()
3
Desafortunadamente no hay un equivalente directo, porque Python 3 está destinado a ser más portátil que Python 2 y la interfaz _thread
es visto como demasiado bajo nivel para este propósito.
En Python 3 la mejor práctica es generalmente usar threading.Thread(target=f...)
. Esto utiliza una semántica diferente, pero se prefiere porque la interfaz es más fácil de portar a otras implementaciones de Python.
Cuestiones relacionadas
- 1. ¿Qué pasó con types.ClassType en python 3?
- 2. ¿Qué pasó con Builder :: XmlMarkup en Rails 3?
- 3. Enhebrado simple en Python 2.6 utilizando thread.start_new_thread()
- 4. ¿Qué pasó con regtlibv12?
- 5. ¿Qué pasó con syscalls.h?
- 6. ¿Qué pasó con VRML?
- 7. ¿Qué pasó con OmniXML?
- 8. ¿Qué pasó con Android AAPT?
- 9. Python + JSON, ¿qué le pasó a None?
- 10. ¿Qué pasó con emacs 'java?
- 11. ¿Qué pasó con MSXML 4.0?
- 12. ¿Qué pasó con la clase rect de Python?
- 13. ¿Qué pasó con las vinculaciones de python para CGAL?
- 14. ¿Qué pasó con Control.InvokeRequired en WPF?
- 15. ¿Qué pasó con AssemblyDescription en Windows 7?
- 16. ¿Qué pasó con JAXB NamespacePrefixMapper en JDK6u18
- 17. thread.start_new_thread vs threading.Thread.start
- 18. HttpClient 4 - ¿Qué pasó con MultiThreadedHttpConnectionManager?
- 19. Rx for .NET - ¿Qué pasó con Scheduler.Dispatcher?
- 20. ¿Qué pasó con la palabra clave 'entrada'?
- 21. Delphi 2010: ¿qué pasó con TRTTIConstructor?
- 22. ¿Qué pasó con las extensiones nunit/rowtest?
- 23. ¿Qué pasó con el operador Rx Switch()?
- 24. ¿Qué pasó con Java (específicamente el lenguaje)?
- 25. ¿Qué pasó con el JSDT de Eclipse?
- 26. ¿Qué pasó con el Proyecto Volta?
- 27. WPF 4: ¿Qué pasó con DataGridColumnHeader?
- 28. ¿Qué pasó con filterContext.Cancel (ASP.NET MVC)
- 29. Python 3 con Emacs
- 30. ¿Qué pasó con las protecciones WINVER y _WIN32_WINNT en windows.h?
Estoy usando el método 2 para pasar un argumento a un hilo, y estoy obteniendo el error: el argumento después de * debe ser una secuencia, no lo es. ¿Sabes qué significa esto? – lemiant
Asegúrese de estar pasando '(firstarg,)' not '(firstarg)' - recuerde que las tuplas de un solo elemento necesitan que la coma final se interprete como una tupla. – Amber
¿Cómo sería la firma del método invocable? Si uso algo como 'invocable (** kwargs):' obtengo 'TypeError: callable() toma 0 argumentos posicionales pero 1 fue dado', y si uso' invocable (kwargs): 'obtengo' TypeError: callable () obtuvo un argumento de palabra clave inesperado 'raw''. – henrikstroem