¿Cómo corutinas puede ser más rápido que los hilos?

Estoy tratando de encontrar una situación donde el cambio de subprocesamiento múltiple a corutinas acelerará el procesamiento de la sección de código afectado. Por lo que he descubierto que las coroutines usan less CPU y espacio de Heap comparando con los hilos, todavía no puedo encontrar el caso donde las corutinas son más rápidas que los hilos. Aunque sé que la creación de corutinas y el cambio de context son mucho más baratos que las operaciones correspondientes con subprocesss, tengo resultados imperceptibles en la diferencia de velocidad (sin medir la creación de subprocesss, ambos casos serán absolutamente iguales).

Entonces, ¿es posible encontrar un caso en el que corutinas acelere más la ejecución que los hilos?

    Una cosa a tener en count es que las corutinas son muy superiores cuando tienes muchas y muchas. Puedes crear y ejecutar miles de coroutines sin pensarlo dos veces, si intentas hacer eso a través de los hilos, toda la sobrecarga asociada con los hilos puede matar al host. Por lo tanto, esto le permite pensar en la paralelización masiva sin tener que administrar subprocesss de trabajo y ejecutables. También facilitan la implementación de patrones de computación asynchronouss que serían muy difíciles de implementar con hilos básicos, como canales y actores.

    Fuera del scope con respecto a su pregunta, pero aún es digno de mención la generalidad del concepto, ya que los casos de uso para corutinas no se limitan a la computación asincrónica. El núcleo de coroutines son funciones suspendibles, que por ejemplo también habilita generadores como los que tienes en python, que no te conectarías inmediatamente a la progtwigción asincrónica.