Akka演员是序列吗

时间:2018-11-22 12:16:16

标签: akka actor

我有一个需要线程池的任务,每个任务需要以与调用相同的顺序执行。因此,我使用了akka演员,但是它没有达到我的预期,所以我进行了测试。 这是我的代码:

  @Test
  def actorTest1(): Unit = {
    for (i <- 1 to 300) {
      val actorRef: ActorRef = actorFactory.createActor("myActor")
      actorRef ! Tell(i)
    }
    Thread.sleep(6000000)
  }

  @Test
  def actorTest2(): Unit = {
    val actorRef: ActorRef = actorFactory.createActor("myActor")
    for (i <- 1 to 300) {
      actorRef ! Tell(i)
    }
    Thread.sleep(6000000)
  }

case tell: Tell => {
  Thread.Sleep(900)
  log.debug("tell: " + tell.i)
}

test1的日志,其顺序不是1,2,3,4,5 ...,具有不同的线程;如果test2是1,2,3,4,5 ...,但是test2总是使用相同的线程。我希望它能正常工作,因为日志是具有不同线程的序列,例如:

2018-11-22 20:13:19.280 DEBUG 14176 --- [thread-1]       : tell: 70
2018-11-22 20:13:19.857 DEBUG 14176 --- [thread-2]       : tell: 71
2018-11-22 20:13:20.362 DEBUG 14176 --- [thread-3]       : tell: 72
2018-11-22 20:13:20.823 DEBUG 14176 --- [thread-4]       : tell: 73

0 个答案:

没有答案