函数 eventloop 在 Scala Actors 中有什么作用,它有什么用?

最佳答案

eventloop的工作方式类似于loopreact的组合。 loopeventloop之间的区别在于,实际上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/

10-11 21:29