在Scala Actors中,一个邮箱(一个Actor的消息队列)是如何实现的? 我原以为是使用MessageQueue,但是它已经被弃用并注明“该类将在未来的版本中被删除”。看起来它可能在Channel中,但我想知道消息队列本身的详细实现。
请看:http://lampsvn.epfl.ch/trac/scala/browser/scala/tags/R_2_8_0_final/src/library/scala/concurrent/MailBox.scala。这个东西看起来基本上就是一个链表,如果有等待接收者时发送完成,则绕过链表。发送方和接收方在MailBox对象上进行同步,发送方通知等待的接收方唤醒。