3
|
hotmeatballsoup · 技术社区 · 6 年前 |
![]() |
1
2
@阿西尔·阿兰巴里说的是对的,你不让你的演员完成它的工作。
参与者具有异步特性,尽管他们没有实现
您向参与者发送消息,然后立即断言消息已更改。由于actor在异步上下文(即不同的线程)中运行,因此它仍然没有处理传入的消息。从而提出
我建议你对最初的设计做些改动,这样可以很好地与阿卡自然相结合。
首先,Akka不建议使用具有可变性的消息。它们必须是不变的。在你的情况下,这是打破方法
在此之后,创建的新实例
现在,不更改消息的内部状态,而是使用新状态创建新消息,并将稍后的消息返回到
这允许测试使用
使
编辑:
Akka的一个功能是不需要同步或等待/通知来控制对共享数据的访问。但这只能通过消息不可变来实现。假设您发送了一个可变的消息,您在actor处理它的准确时间更改了它。这会导致比赛条件。读 this 了解更多详细信息。
不,这里不适用。如果任何状态被包含在一个参与者中,并且 只有它能改变它 具有可变性是完全可以的。 |
![]() |
2
1
我认为你不让那个演员做他的工作。也许
我的猜测是,通过睡眠你的主线,你给演员的“线”时间完成他的方法。 我知道这可能没什么帮助,但发表评论的时间太长了。:( |
|
user29759326 · 如何返回递归函数中的最后一个值? 4 月前 |
|
malife89 · 将java中的字符串读取为正确的日期格式 5 月前 |
![]() |
Tim · 在java中,有没有更快的方法将字节数组写入文件? 5 月前 |
![]() |
rudraraj · java中未声明最终变量 5 月前 |
![]() |
Bala Ji · 以下BFS的实施效率如何? 5 月前 |