函数"eventloop"在Scala Actors中的作用是什么?

Mic*_*ael 7 scala actor

函数eventloop在Scala Actors中做了什么以及它对什么有用?

Vas*_*iuk 9

eventlooploop与... 相似和react合并.之间的差loopeventlooploop,事实上,不递归调用所述主体(以防止基于线程的行为者的堆栈溢出),而调度处理(反应/接收)从邮箱的下一消息,并且完成的执行当前处理程序抛出异常,以清除调用堆栈.

eventloop使用时递归处理消息react- 如果react它是安全的(并且堆栈没有溢出),因为react(但不是receive!)的主体总是以异常结束,在大多数情况下,并且下一个循环被调度,以保证公平访问线程池形成所有参与者.因此,eventloop只能与事件驱动的actor一起使用.

import scala.actors._
import Actor._

class EventLoop extends Actor {
   def act = eventloop{
      case msg => println("Received " + msg)
   }
}
Run Code Online (Sandbox Code Playgroud)