Сопрограммы против программирования, управляемого событиями

Относительно примера в википедии: http://en.wikipedia.org/wiki/Coroutine

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

Интересно, что традиционный подход, основанный на событиях, может справиться с таким типом использования, зачем использовать сопрограмму?

7
задан Howard 13 February 2011 в 10:04
поделиться