最近我提出的问题的回复表明一个actor一次只能处理一条消息。这是真的吗?在《Scala编程》中没有明确说明,该书包含以下片段(第593页)
如果[
react
方法]发现可以处理的消息,[它]将安排稍后执行该消息的处理并抛出异常。
(强调是我的)。有两个相关的(互斥的)问题:
- 假设一个actor可以同时处理多个消息,如何强制actor一次只能处理一条消息(使用
receive
)? - 假设一个actor一次只能处理一条消息,如何最好地实现一个actor,该actor实际上可以并发处理消息
编辑:进行一些测试似乎证明我错了,actors确实是顺序的。因此需要回答问题#2