Redian新闻
>
问个scala Akka actors的问题
avatar
问个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....
avatar
b*M
2
Thread.sleep ....
典型的anti pattern
avatar
z*c
3

求指导...

【在 b******M 的大作中提到】
: Thread.sleep ....
: 典型的anti pattern

avatar
p*2
5
actor不是这么用的呀

actors

【在 z*c 的大作中提到】
: 学校里的项目自己手贱偏要选用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])

avatar
z*c
6

我一直把它当轻量级的thread用来着...

【在 p*****2 的大作中提到】
: actor不是这么用的呀
:
: actors

avatar
p*2
8
不能block

【在 z*c 的大作中提到】
:
: 多谢赐教!!!!!!!!

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。