Просто начните с Scala Актеров. На веб-сайте Scala говорится:
Операции блокировки потоков можно избежать, используя
reactдля ожидания новые сообщения (кулон, основанный на событииreceive). Однако существует (как правило, небольшие), чтобы заплатить:reactникогда не возвращается....
Обратите внимание, что использование
reactвнутри циклаwhileне работает! Однако, поскольку петли являются общими, для него существует специальная поддержка библиотеки в форме функцииloop. Его можно использовать следующим образом:
loop {
react {
case A => ...
case B => ...
}
}
Теперь я запутался - похоже, есть противоречие:
a) Если react никогда не возвращается, то какая точка помещает его в цикл?
b) Поскольку loop многократно выполняет блок, как он отличается от while(true) - почему не работает while и каким образом он "не работает"?