2012-07-13 15 views
10

Java di Android e Java di Oracle sono leggermente diversi. E 'possibile utilizzare i seguenti attori o coroutineModo alternativo ai thread in Android

anche per Android al fine di evitare di utilizzare le discussioni e condividere di più il codice tra Java di Android e Java di Oracle? Ci sono altri framework disponibili per entrambe le versioni di Java.

Grazie in anticipo.

+1

Con il termine "alternativa al discussioni" intendi un'alternativa alla classe 'Thread' o al threading in generale? – Tudor

+0

Vorrei evitare di sincronizzare thread o dead lock e vorrei avere qualcosa come un modello di attore o coroutine anche per Android. C'è qualcosa là fuori per Android? – user977828

risposta

4

Si dovrebbe cercare attori versione Java di Akka: http://doc.akka.io/docs/akka/snapshot/java/untyped-actors.html

Permette facile coltivazione di topologia attore usando le migliori pratiche (senza accesso diretto ad attori con riferimento Java, limitando i guasti alle zone, limitando il sovraccarico utilizzando zone scheduler ecc) - tutti loro sono descritti in copia gratuita di "Scala di profondità" libro: http://typesafe.com/resources/scala-in-depth

Ecco esempio (con demo http://vimeo.com/20303656) del comportamento dinamico degli attori che utilizzano Akka FSM su Android: https://github.com/akka/akka/blob/master/akka-samples/akka-sample-fsm/src/main/scala/DiningHakkersOnBecome.scala

Inoltre si può provare attori leggeri da Java funzionale: https://github.com/functionaljava/functionaljava/blob/master/core/src/main/java/fj/control/parallel/Actor.java

versione più minimalista di un attore per la JVM è qui: https://github.com/plokhotnyuk/actors/blob/master/src/test/scala/com/github/gist/viktorklang/Actor.scala (le sue caratteristiche descritte qui: How to implement actor model without Akka?)

+2

Grazie. Akka dipende dalla libreria runtime di Scala che è più di 8 Mb. Gpars http://www.gpars.org/guide/guide/2.%20Getting%20Started.html#2.7%20Java%20API%20-%20Using%20GPars%20from%20Java è grande solo 450 KB. j-javaactors http://www.ibm.com/developerworks/java/library/j-javaactors/ ha una dimensione di circa 400 KB. C'è anche http://code.google.com/p/functionaljava/downloads/list di circa 2 MB di grandi dimensioni e http://code.google.com/p/guava-libraries/wiki/ListenableFutureExplained – user977828