问个scala Akka actors的问题# JobHunting - 待字闺中
z*c
1 楼
学校里的项目自己手贱偏要选用scala搞,结果身边没人会,网上资料也相对少多了,
各种疑惑也找不到解答....
目前设计程序一启动就创建200个actors,然后每个actor都一直运行下去。每个actors
的逻辑里头都有个while(true)和Thread.sleep(5000),每隔五秒重复一次。
目前的问题是不知咋的代码一运行只能创建12个actors....
代码如下:
imgs是一个大小为200的list of string
Raw是“final case class Raw(data: String)”
for (img lazy val imgActor = Akka.system.actorOf(Props[ImageProcessing])
imgActor ! Raw(img)
}
然后ImageProcessing长这样:
class ImageProcessing extends Actor {
import Application._
def receive =
{
case Raw(data) => this.synchronized
{
println(data)
Thread.sleep(5000)
//do sth.
}
}
}
按理说应该一来就打印200个string,然后每隔五秒就重复打印一次对吧??!!
结果输出是每隔5秒只打印12个string....
各种疑惑也找不到解答....
目前设计程序一启动就创建200个actors,然后每个actor都一直运行下去。每个actors
的逻辑里头都有个while(true)和Thread.sleep(5000),每隔五秒重复一次。
目前的问题是不知咋的代码一运行只能创建12个actors....
代码如下:
imgs是一个大小为200的list of string
Raw是“final case class Raw(data: String)”
for (img lazy val imgActor = Akka.system.actorOf(Props[ImageProcessing])
imgActor ! Raw(img)
}
然后ImageProcessing长这样:
class ImageProcessing extends Actor {
import Application._
def receive =
{
case Raw(data) => this.synchronized
{
println(data)
Thread.sleep(5000)
//do sth.
}
}
}
按理说应该一来就打印200个string,然后每隔五秒就重复打印一次对吧??!!
结果输出是每隔5秒只打印12个string....