Python, excepto en situaciones muy limitadas, no admite el uso de subprocesos múltiples para acelerar. Puede usar subprocesos múltiples para facilitar el manejo de E / S, etc., pero los subprocesos combinados no usarán más del 100% de un núcleo.
Esto se debe al bloqueo global del intérprete, y creo que es una de las deficiencias más graves de Python.
Lo que todo programador debe saber sobre el GIL
- ¿Puede un buen ingeniero de software de Google con experiencia en matemáticas y aprendizaje automático realmente unirse a una empresa financiera cuantitativa y recibir un pago de $ 500k + como suelen reclamar los reclutadores?
- Me siento deprimido cuando estoy estudiando Informática. ¿Siento que siempre seré un programador promedio?
- ¿Cuál es la responsabilidad principal de un ingeniero de software en Caterpillar Inc.?
- ¿Cuáles son los estudios sobre "espacio abierto vs. oficinas individuales"?
- ¿Cuál es mejor para unirse al puesto de aprendiz de ingeniero de software asociado y analista de programador respectivamente: Accenture India o Cognizant?
Sí, puede usar multiprocesamiento, pero la concurrencia con multiprocesamiento es mucho más difícil (lleva más tiempo escribir) que usar subprocesos, con memoria compartida.
Ahora, si vas a hacer multiprocesamiento en Python, ¿por qué no usar C ++ o incluso Java en su lugar? Sería más rápido escribir Y el programa se ejecutará más rápido.
Muchas compañías hacen muchas preguntas sobre multihilo. Pero, por lo general, usa C ++, Java o C. Nadie realmente hace cosas críticas para el rendimiento en Python, excepto donde hay bibliotecas para levantar objetos pesados (por ejemplo, numpy).