Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
|
fw:greenlet [2013/07/04 16:05] alfred |
— (actual) | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| - | ====== Greenlet ====== | ||
| - | Un greenlet es un micro-thread sin "organización implícita", esto significa que contraolas exactamente cuando se está ejecutando y adecuar su uso. \\ | ||
| - | El uso de greenlets es parecido al de una pila de capas. La más baja es la función inicial que fue llamada, y las demás son greenlets actualmente pausados. Se irá indicando cuando se quiere trabajar con uno o con otro (switching). \\ | ||
| - | Cuando se crea un greenlet se inicia una pila vacía y se ejecuta en ella una función específica. \\ | ||
| - | |||
| - | Los greenlet pueden morir al acabar su ejecución o debido a una excepción no controlada. \\ | ||
| - | |||
| - | La salida del siguiente código es: 12, 56, 34 | ||
| - | <code python> | ||
| - | from greenlet import greenlet | ||
| - | |||
| - | def test1(): | ||
| - | print 12 | ||
| - | gr2.switch() | ||
| - | print 34 | ||
| - | |||
| - | def test2(): | ||
| - | print 56 | ||
| - | gr1.switch() | ||
| - | print 78 | ||
| - | |||
| - | gr1 = greenlet(test1) | ||
| - | gr2 = greenlet(test2) | ||
| - | gr1.switch() | ||
| - | </code> | ||