Las rutinas son un gran paradigma para facilitar la programación concurrente. Y la mayoría de las veces, las tareas simultáneas son fácilmente paralelables. En el lenguaje Go, es fácil usar goroutines para realizar tareas paralelas. ¿Hay alguna manera de hacer lo mismo en Python, p. usar corutinas para crear procesos y sincronizarlos?Programación paralela con coroutines en Python
Respuesta
Sí, Python tiene soporte para corutinas en bibliotecas y mediante generadores: consulte la biblioteca Greenlet, por ejemplo. Además, existe una derivada llamada Stackless Python que tiene soporte incorporado para varias características de programación simultáneas, como microthreads y canales.
Tenga en cuenta que en el CPython predeterminado, el bloqueo de intérprete global solo permitirá la ejecución de un subproceso al mismo tiempo, lo que puede ser un problema.
Si desea utilizar el intérprete de Python estándar, la biblioteca de Greenlet es el camino a seguir.
En cuanto a GIL, no debería ser un problema para corutinas. Podría considerar el modelo de corletina de greenlet como múltiples 'hilos' ligeros de espacio de usuario que se ejecutan dentro de un hilo del kernel. Entonces, desde el punto de vista de GIL y OS, sigue siendo de un solo hilo.
- 1. Comenzando con la programación paralela
- 2. Programación paralela con funciones recursivas?
- 3. Programación paralela en Mathematica
- 4. Programación paralela en C#
- 5. Programación paralela en Java
- 6. Programación paralela y C++
- 7. Programación paralela dinámica
- 8. programación "embarazosamente paralela" usando python y PBS en un clúster
- 9. Thread coroutines seguras con asio
- 10. Python: lista de ordenación con lista paralela
- 11. Python: ¿Rendimiento Dict Elements en la producción de Coroutines?
- 12. Pautas de programación paralela para C#?
- 13. Programación con hardware en python
- 14. asignación paralela en Java?
- 15. Asignación paralela en C++
- 16. Ideas para el proyecto de programación paralela estudiante
- 17. Recomendación del libro - Programación paralela para C# .NET 4.0
- 18. ¿Cómo se puede aprender la programación paralela de subprocesos múltiples?
- 19. programación lineal en python?
- 20. programación asincrónica en python
- 21. Patrón de diseño alternativo a Coroutines
- 22. ¿Cómo se implementan los generadores y coroutines en CPython?
- 23. optimización paralela en R
- 24. iteración paralela en C#?
- 25. Programación de orden superior con Boost :: Python
- 26. Lenguajes de script que admiten fibras/coroutines?
- 27. Programación Relacional/Lógica en Python?
- 28. Coroutines para el diseño de juegos?
- 29. Segmentación paralela
- 30. Programación asincrónica en Python Twisted