函数 eventloop
在 Scala Actors 中有什么作用,它有什么用?
最佳答案
eventloop
的工作方式类似于loop
和react
的组合。 loop
和eventloop
之间的区别在于,实际上loop
不会递归调用主体(以防止基于线程的actor发生堆栈溢出),而是安排处理( react /接收)邮箱中的下一条消息并完成当前处理程序的执行引发异常,以清除调用堆栈。eventloop
使用react
递归处理消息-在react
的情况下,它是安全的(并且堆栈不会溢出),因为react
的主体(但不是receive
!)在大多数情况下总是以异常结尾,并进行下一个循环计划,以确保所有参与者都能公平地访问线程池。因此,eventloop
只能与事件驱动的actor一起使用。
import scala.actors._
import Actor._
class EventLoop extends Actor {
def act = eventloop{
case msg => println("Received " + msg)
}
}
关于scala - 函数 "eventloop"在 Scala Actors 中有什么作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6317053/