2010-10-31 28 views

Répondre

9

python stackless et tasklets (je ne l'ai pas fait de programmation avec python stackless, mais j'ai lu quelques-uns des détails sur la façon dont il est mis en œuvre):

Plus:

  1. plus légère de le temps.
  2. A programmateur pour gérer quelle tasklet obtenir reprendre après la présente en cours.
  3. Prise en charge de la planification préemptive. (c'est-à-dire, exécuter des instructions X)
  4. Canaux pour la communication entre les tâches.

Moins:

  1. ont parfois besoin C-pile lorsque rendement d'un tasklet. (À savoir lorsque rendement de quelques rappels C)

Lua 5,1 avec coroutines lisses:

Avantages:

  1. léger.
  2. Les fonctions resume()/yield() permettent un modèle de communication consommateur/producteur.

Moins:

  1. Aucun programmateur intégré. Vous devez gérer la reprise & en produisant des coroutines.
  2. Impossible de générer une fonction C, une métaméthode ou un itérateur. (Lua 5.2 enlèvera la plupart de ces restrictions, LuaJIT 1.1 fournit la commutation légère de c-empilement pour donner n'importe où)
  3. Aucune prise en charge préemptive de planification. (Devrait utiliser des crochets de débogage)

Lua 5.1 avec ConcurrentLua:

Plus:

  1. léger.
  2. Planificateur avec commutation de contexte coopératif.
  3. Possède le style Erlang de transmission de messages entre tâches.
  4. Prise en charge de la transmission de messages distribués transparents entre des noeuds.

Moins:

  1. Impossible rendement à partir d'une fonction C, un métaméthode ou un itérateur. (encore une fois la plupart de ces restrictions s'en vont avec Lua 5.2 et LuaJIT)
  2. Pas de prise en charge de planification préemptive intégrée. (Devrait utiliser des crochets de débogage)

luajit 2.0 Beta avec ConcurrentLua:

Plus:

  1. léger.
  2. Planificateur avec commutation de contexte coopératif.
  3. Possède le style Erlang de transmission de messages entre tâches.
  4. Prise en charge de la transmission de messages distribués transparents entre des noeuds.
  5. soutien JIT très rapide fait Lua much faster then Python

Moins:

  1. pourrait ne pas être en mesure de produire à partir d'une fonction C en ce moment. Cela pourrait être pris en charge dans les prochaines versions.
  2. Aucune prise en charge de planification préemptive intégrée. (devrait utiliser des crochets de débogage)
+0

Super! Et merci de me faire part de ConcurrentLua! – Eonil