Usando un modello attore rispetto a un modello produttore-consumatore?

6

Sto facendo alcune ricerche iniziali per progettare una nuova applicazione software. Probabilmente la concorrenza e il multithreading giocheranno una parte significativa, quindi ho letto i vari argomenti.

Il modello produttore-consumatore, almeno per come è espresso in Java, ha alcune somiglianze di superficie, ma sembra essere profondamente dissimile dal modello di attore in uso con linguaggi come Erlang e Scala. Ho difficoltà a trovare buoni dati comparativi o ragioni specifiche per utilizzare o evitare l'uno o l'altro.

Il modello degli attori è persino possibile con Java o C # oppure hai utilizzato uno dei linguaggi creati appositamente? C'è una terza via?

    
posta hewhocutsdown 04.06.2011 - 21:40
fonte

2 risposte

0

Certo, potresti implementare un modello basato su attori sia in java che in C #. Infatti, Microsoft l'ha fatto . Ottieni un sacco di benefici anche se il modello è un'astrazione direttamente nella lingua.

Detto questo, la giuria è ancora fuori se il modello dell'attore sarà il modello di concorrenza del futuro. Clojure include memoria transazionale del software come modello di concorrenza sottostante.

Personalmente ritengo che né il modello dell'attore né l'STM finiranno per essere il modello di concorrenza de facto, ma piuttosto un linguaggio di programmazione ibrido OOP / funzionale con astrazioni di concorrenza incorporate direttamente nel linguaggio.

    
risposta data 04.06.2011 - 23:55
fonte
1

Se ti piacerebbe provare il modello degli attori in Java (e Scala) potresti volere per dare un'occhiata a Akka . Le librerie sono anche in fase di sviluppo per C ++ (vedi le librerie elencate su questa pagina di wikipedia ).

Quindi, sembra che il modello degli attori non debba essere integrato nella programmazione lingua.

    
risposta data 10.04.2012 - 16:40
fonte

Leggi altre domande sui tag