Теперь я хочу, чтобы актер отправлял сообщения другим актерам и в то же время получал сообщения от других. Кажется, мне нужно использовать несколько потоков в Акке. Ниже мой код:Как реализовать несколько потоков в akka & scala?
def receive = {
case Rumor => {
count+=1;
if ...
else self ! Sleep(FiniteDuration(20, "millis"))
}
case Sleep(duration) => {
case object WakeUp
context.system.scheduler.scheduleOnce(duration, self, WakeUp)
context.become(
{
case WakeUp => context.unbecome()
others ! Rumor
}, discardOld = false
)
}
case _=> .....
}
моя проблема являются:
1) Я не уверен, что мой код будет работать, как я ожидал. Ссылочная use Akka scheduler inside an actor
2) Я уже импортировать
import scala.math._
import akka.actor._
import scala.util.Random
import scala.concurrent.duration._
но компилятор все еще сообщает об ошибке на:
error: Cannot find an implicit ExecutionContext, either require one yourself or import ExecutionContext.Implicits.global
context.system.scheduler.scheduleOnce(duration, self, WakeUp)
Запрашиваю * Я хочу, чтобы актер отправлял сообщения другим актерам и в то же время получал сообщения от других * - это то же самое, что и * Как я могу стрелять в ногу *. Вы обмениваете каждую точку актерской модели на огромную кучу проблем. Scala не создан только для актеров (например, Erlang), поэтому, если вам действительно нужно использовать простой-старый-Java-параллелизм с голой нитью и свистами, используйте его. –