2012-07-13 89 views
10

Android的Java和Oracle的Java稍有不同。是否可以使用下面的演员或协同程序Android的另一种线程方式

还为Android,以避免使用线程和共享之间更多的代码Android的Java和Oracle的Java?是否有其他框架可用于这两个Java版本。

预先感谢您。

+1

通过“替代主题”你的意思是替代'Thread'类或一般的线程吗? – Tudor 2012-07-13 15:36:03

+0

我想避免同步线程或死锁,并希望有一些类似于Actor的模型或协程也适用于Android。 Android上有什么吗? – user977828 2012-07-13 22:16:22

回答

4

你应该尝试从Java版本阿卡演员: http://doc.akka.io/docs/akka/snapshot/java/untyped-actors.html

它允许使用的最佳实践(演员布局,通过Java引用没有直达演员,限制失败中区,利用调度区限制超载容易生长等) - 所有这些都在自由复制“斯卡拉详解”中所描述的书: http://typesafe.com/resources/scala-in-depth

下面是例子(与Android上使用阿卡FSM演员的动态行为演示http://vimeo.com/20303656): https://github.com/akka/akka/blob/master/akka-samples/akka-sample-fsm/src/main/scala/DiningHakkersOnBecome.scala

您也可以尝试从Java功能轻便演员: https://github.com/functionaljava/functionaljava/blob/master/core/src/main/java/fj/control/parallel/Actor.java

了JVM的演员大多简约的版本是在这里: https://github.com/plokhotnyuk/actors/blob/master/src/test/scala/com/github/gist/viktorklang/Actor.scala (这里描述其功能:How to implement actor model without Akka?

+2

谢谢。 Akka依赖于超过8 Mb的Scala运行时库。 Gpars http://www.gpars.org/guide/guide/2.%20Getting%20Started.html#2.7%20Java%20API%20-%20Using%20GPars%20from%20Java只有450 KB大。 j-javaactors http://www.ibm.com/developerworks/java/library/j-javaactors/大约400 KB。还有大约2 MB的http://code.google.com/p/functionaljava/downloads/list和http://code.google.com/p/guava-libraries/wiki/ListenableFutureExplained – user977828 2012-07-18 02:21:37