2011-02-13 10 views
5

En cuanto al ejemplo en Wikipedia: http://en.wikipedia.org/wiki/CoroutineCoroutine vs programación dirigida por eventos

var q := new queue 

coroutine produce 
    loop 
     while q is not full 
      create some new items 
      add the items to q 
     yield to consume 

coroutine consume 
    loop 
     while q is not empty 
      remove some items from q 
      use the items 
     yield 

Me pregunto enfoque basado en el tradicional evento puede manejar este tipo de patrón de uso, ¿por qué es necesario utilizar corrutina?

Respuesta

4

Creo que es coroutines que son "tradicionales", y los eventos son "modernos". Sin embargo, también tienen un propósito diferente; AFAIK, las corutinas pueden especificar dónde transferir el control (como las llamadas a métodos) o pueden usarse para time-share, mientras que los eventos son comunicaciones poco compactas (es decir, se comunican "hacia arriba" en un layered architecture).

Asegúrese de leer Eric Lippert's blog series (desde octubre de 2010) sobre el estilo de continuación de paso si le interesan cosas como estas. Hay una publicación titulada "Musings about coroutines".

+0

Gracias por las excelentes recomendaciones de blog! – realjin

Cuestiones relacionadas