2017-01-23 116 views
0

我有麻烦理解阿卡演员和一个线程如何与演员相关。了解阿卡演员的线程

我们来看一个冰箱演员和一个人演员发送GetFoodMessage到冰箱演员参考的例子。 假设尊重不变性。

  • 将这些消息在differrent线程“同时”处理或者将这些消息被处理逐个在队列中?
  • 线程产卵是否完全由库管理,并从Actor的概念中抽象出来?
  • 是一个Actor引用了Actor的一个实例吗?
  • 当我停止一个演员(和他的孩子)我杀死线程? (如果冰箱没有更多的食物并通知人员演员没有更多的食物可用)
  • 演员系统是所有这些线程的父进程吗?
  • 冰箱演员是人类演员的孩子吗?

这些问题都深化发展的阿卡系统时,“为了好玩”来找我,我看到其他的堆栈溢出线程的讨论主题是如何与演员,但我相信这些问题是不同的

回答

3
  • 请问那些在不同线程中“同时”处理消息还是将这些消息一个一个地在队列中处理? - 队列中的一个接一个地排队

  • 是线程产卵完全由库管理并从概念抽象出来演员的? - 是

  • 是一个Actor引用了Actor的一个实例吗? - 没有。 Actor可以在另一个JVM实例中。

  • 当我停止演员(和他的孩子)我是否杀死线程? (如果冰箱没有更多的食物,并通知人员演员没有更多的食物可用) - 否

  • 是否是Actor系统是所有这些线程的父进程? - no

  • 冰箱演员是人类演员的孩子吗? - 它可以是,也可以是不作为程序员决定

一般来说,阿卡演员能够在一个线程池的单线程运行任务。它在有消息要处理时被提交给执行,并在没有更多消息时离开该线程。