El uso de procesos múltiples le permite explotar múltiples núcleos de CPU al mismo tiempo, mientras que en CPython, usar hilos no (los hilos se turnan usando un solo núcleo de CPU), así que si tiene un trabajo intensivo de CPU y absolutamente desea utilizar hilos, debe considerar Jython o IronPython; con CPython, esta consideración es a menudo suficiente para influir en la elección hacia el módulo de multiprocessing
y lejos de la threading
uno (ofrecen las interfaces muy similares, porque multiprocessing
fue diseñado para ser fácilmente puesto en marcha en lugar de threading
).
Neto de esta consideración crucial, los subprocesos a menudo pueden ser una mejor opción (rendimiento) en Windows (donde hacer un nuevo proceso es una tarea pesada), pero con menos frecuencia en variantes de Unix (Linux, versiones BSD, OpenSolaris, MacOSX, ...), ya que hacer un nuevo proceso es más rápido allí (pero si está utilizando IronPython o Jython, debe comprobar, en las plataformas que le interesan, que esto todavía se aplica en las máquinas virtuales en cuestión - CLR con .NET o Mono para IronPython, su JVM de elección para Jython).
Hmm dos respuestas contradictorias ... – kennytm
@Kenny TM: No es de extrañar. "Mejor" no está definido en la pregunta. Además, es altamente discutible para la mayoría de las definiciones de "Mejor". –