2011-03-30 16 views
8

He estado buscando a través del código Topshelf, y el aviso de que se está utilizando un montaje llamado 'stact.dll'. No parece haber mucha información sobre esto. Parece ser una biblioteca para crear aplicaciones simultáneas usando actores y 'canales'. Creo que el código de Topshelf es un poco difícil de seguir, pero estoy interesado en saber más sobre este estilo de programación. ¿Alguien ha tenido alguna experiencia con esta biblioteca? ¿Cómo aprendiste a usarlo?Primeros pasos con el marco stact

+1

Esta descripción de Actor v.s. El modelado de hilos en Erlang/Scala está conceptualmente relacionado con Stact. Tal vez es útil dar algunos antecedentes. http://ruben.savanne.be/articles/concurrency-in-erlang-scala Y estas son referencias recopiladas por el propio Chris http://blog.phatboyg.com/2011/11/26/references-on-the-actor -programación-modelo/ – enix

Respuesta

6

Stact la actualidad sólo se utiliza internamente realmente en este momento. Es algo que hemos construido a partir de nuestras experiencias software de escritura concurrente y sobre todo el trabajo de Chris Patterson (https://github.com/phatboyg/Stact).

El ejemplo más simple que puedo pensar que hay ahí fuera es de Cashbox. https://github.com/Cashbox/Cashbox/blob/v1.0/src/Cashbox/Engines/FileStorageEngine.cs

Tiene un canal que pasa mensajes. En un extremo de ese canal, configura las suscripciones de mensajes. La línea 72 crea las suscripciones, configurando una acción de controlador para cada tipo de mensaje que espera. El HandleOnFiber (_fiber) está obligando a todos los mensajes a ser procesados ​​en el mismo hilo y que están en la cola como se reciben. Hay otras llamadas al administrador y es de esperar que la API sea bastante reconocible.

Ahora, este ejemplo oculta todos los canales y fibras en una clase, es posible que tenga canales que conectan diferentes clases, en cuyo caso se debe pasar una referencia al canal en cuestión.

Stact es realmente una biblioteca Actor. No hay grandes ejemplos, por el momento, de usarlo para escribir actores. Espero que esto ayude.

+0

Gracias Travis. Veré el ejemplo de la caja y trataré de entenderlo. –

+1

También podría querer mencionar también a Retlang: http://code.google.com/p/retlang/ –

+1

El enlace de ejemplo está muerto –

Cuestiones relacionadas