Как почтовый ящик (очередь сообщений) реализован в Scala Actors? - PullRequest
5 голосов
/ 29 июля 2010

За кулисами, как в Scala Actors реализован почтовый ящик (очередь сообщений актера)?

Я думал, что это MessageQueue, но он устарел, так как отметил, что "этот класс будет удален в будущем выпуске". Похоже, что это может быть в Channel, но я хочу узнать, как реализована сама очередь сообщений.

1 Ответ

3 голосов
/ 30 июля 2010

См .: http://lampsvn.epfl.ch/trac/scala/browser/scala/tags/R_2_8_0_final/src/library/scala/concurrent/MailBox.scala
Похоже, это в основном просто связанный список, который игнорируется, если есть ожидающий получатель, когда отправка завершена. Отправители и получатели синхронизируются на объекте MailBox, а отправители уведомляют о том, чтобы разбудить ожидающих получателей.

...