作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
一段时间后,这个 Actor 填满了堆栈。可能的解决方案?
object Puller extends Actor {
def act() = {
receiveWithin(2000) {
case Stop => println("stoping puller")
exit()
case Noop => println("nothing happens")
act()
case TIMEOUT => doPull
act()
}
}
def doPull() = // stuff...
}
我很不高兴在 Scala 编程中找到这段代码。
最佳答案
你的 act
不是尾递归的。你可以修改如下:
@tailrec // in the presence of this annotation, the compiler will complain, if the code is not tail-recursive
def act() = {
receiveWithin(2000) {
case Stop => println("stoping puller"); exit()
case Noop => println("nothing happens")
case TIMEOUT => doPull
}
act()
}
关于scala - 使用 Scala Actor 和 receiveWithin 的 Stackoverflow 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6121541/
我正在 Scala 中构建基于参与者的服务,消费者可以在其中查询客户端是否已获得授权,也可以向客户端授权。 如果消费者查询客户端的授权状态并且该客户端尚未获得授权,则参与者应在指定的超时时间内等待传入
一段时间后,这个 Actor 填满了堆栈。可能的解决方案? object Puller extends Actor { def act() = { receiveWithin(2000) {
我是一名优秀的程序员,十分优秀!