我使用Node.js已经有一段时间了,我认为自己在Java方面做得很好。但我刚刚发现了Akka,并立即对它的actor模式感兴趣(据我了解)。现在,假设我的JavaScript技能与我的Scala/Java技能相当,我想专注于这两个系统的实用性。尤其是在网络服务方面。据我了解,Node擅长处理许多并发操作。我想一个用于Assets管理系统的优秀NodeWeb服务将擅长处理同时提交更改的许多用户(在大型、高流量的应用程序中)。但是在阅读了Akka中的Actor之后,它似乎会在同一件事上表现出色。我喜欢将工作减少到一口大小的想法。另外,几年前我涉足Erlang并爱上了它使用的消息传递系统。
已结束。此问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提出有关书籍、工具、软件库等方面的建议的问题。您可以编辑问题,以便用事实和引用来回答它。关闭2年前。Improvethisquestion我正在为Python2.x寻找易于学习的Actor库或框架。我尝试过Candygram和Twisted,但我不喜欢它们。我想要一些很容易扩展到supperoGreenlet(=stacklesspython)的东西。Candygram太旧了。Twisted太复杂了。Gevent:是否支持Actors模型尚不清楚。你有什么建议?
如果我理解正确,LibGDX正在使用addActions方法旋转图像:this.addAction(parallel(rotateBy(360,0.5f),moveTo(320,100,0.5f)));问题是,它正在被图像的point=(0,0)旋转。这是我的问题:有没有办法通过对象的中心点旋转图像?比如把它钉在中间,然后像汽车的轮子一样转动它?rotateBy和rotateTo方法都将其旋转图像本身的(0,0)点。p> 最佳答案 您必须正确设置Actor的“原点”。您可以从ActorAPI中得知,原点是相对于位置的,用于缩放和旋转
我正在编写简单的太阳系模拟器。这是我的第一个libgdx项目。我在主菜单中使用了舞台和Actor,并且非常方便,尤其是触摸事件处理。但是......看看这些例子,我发现没有人在实际游戏逻辑中使用Actor。如果我应该使用actor作为行星类的父级,或者只是编写我自己的类,我会徘徊。行星是不可触摸的,它们只会在帧之间移动,因此ActionMoveBy的第三个参数必须是帧之间的时间。这就是缺点。使用Actors的优点是什么? 最佳答案 Actor的主要优点是Action、HitTest和触摸事件以及Actor组。如果您的游戏逻辑需要,A
actor向其父级发送消息的方法是什么?我正在使用Akka2.2 最佳答案 你正在寻找getContext().parent()它为您提供父级的ActorRef,因此您可以这样做getContext().parent().tell(...) 关于java-如何在AkkaClassic中向Actor的parent发送消息?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/178535
我只是在比较scalaactor与java线程的性能。我很惊讶地看到差异,我观察到使用我的系统我最多只能产生约2000个线程(一次运行)但使用相同的系统我能够产生约500,000个scalaActor。两个程序都使用了大约81MB的JVM堆内存。你能解释一下java线程是如何比scala/akkaActor重这么多的吗?scala-actor如此轻量的关键因素是什么?如果我想获得最佳的可扩展性,我应该选择基于Actor的Web服务器,而不是像JBoss或Tomcat这样的基于Java的传统Web/应用服务器吗?谢谢。 最佳答案 Sc
我一直在研究学习Erlang/OTP,因此,我一直在阅读(好吧,略读)关于actor模型的内容。据我了解,actor模型只是一组函数(在Erlang/OTP中称为“进程”的轻量级线程中运行),它们仅通过消息传递相互通信。用C++或任何其他语言实现这似乎相当简单:classBaseActor{std::queuemessages;CriticalSectionmessagecs;BaseMessage*Pop();public:voidPush(BaseMessage*message){autoscopedlock=messagecs.AquireScopedLock();message
从JoeArmstrong'sdissertation开始,他指定基于actor的程序应该通过以下三个步骤进行设计。问题是,我不明白这些步骤是如何映射到现实世界问题的,也不知道如何应用它们。这是乔最初的建议。我们识别现实世界活动中所有真正并发的活动。我们识别并发活动之间的所有消息通道。我们写下所有可以在不同消息通道上流动的消息。现在我们编写程序。程序的结构应该完全遵循问题的结构。在我们的编程语言中,每个实际的并发活动都应该映射到一个并发进程上。如果问题与程序之间存在1:1的映射,我们就说程序与问题同构。非常重要的一点是,映射正好是1:1。其原因是它将问题和解决方案之间的概念差距最小化。
如果我想移植一个使用Goroutines的Go库,Scala是否是一个不错的选择,因为它的收件箱/akka框架在本质上类似于协程? 最佳答案 不,他们不是。Goroutines基于通信顺序进程的理论,正如TonyHoare在1978年所指出的那样。这个想法是可以有两个进程或线程,它们相互独立,但共享一个“channel”,一个进程/线程放置数据into和其他进程/线程消耗。您会发现最突出的实现是Go的channel和Clojure的core.async,但目前它们仅限于当前运行时并且不能分发,即使在同一个物理盒子上的两个运行时之间也
如果我想移植一个使用Goroutines的Go库,Scala是否是一个不错的选择,因为它的收件箱/akka框架在本质上类似于协程? 最佳答案 不,他们不是。Goroutines基于通信顺序进程的理论,正如TonyHoare在1978年所指出的那样。这个想法是可以有两个进程或线程,它们相互独立,但共享一个“channel”,一个进程/线程放置数据into和其他进程/线程消耗。您会发现最突出的实现是Go的channel和Clojure的core.async,但目前它们仅限于当前运行时并且不能分发,即使在同一个物理盒子上的两个运行时之间也