Scala并发编程react、loop代码实战详解

示例代码及注释:

//scala并发编程中的react和loop,共同特点://通过线程存用的方式让性能有所提升。//Actor本身的运行,被actor子系统管理的时候,会有一个或者多个远程的线程让当前的actor使用//一般情况下每个Actor都有自己的线程。只有有自己的线程时,我们的Actor中的actor方法才会执行。//但是,这样线程的开销会非常大,所以为了共用线程,一个actor使用多个线程后,我们不想立即回收,我们想共用。//scala给我们提供了两个方法:react方法和loop方法//react和receive其实都是偏函数object NameResolver extends Actor{ def act(){/*react{//不返回具体的内容case Net(name,actor)=>sender ! getIp(name)actcase "EXIT" => println("Name resolver exiting.")case msg =>println("Unhandled message : "+msg)act}*/loop{//重复执行一个代码块react{case Net (name,actor) =>actor ! getIp(name)case msg =>println("Unhadled message" + msg)}} } def getIp(name : String) : Option[InetAddress]= {try{println(InetAddress.getByName(name))Some(InetAddress.getByName(name))}catch{case _ : UnknownHostException => None} }}case class Net(name :String,actor:Actor)object Actor_More_Effective{ def main(args: Array[String]): Unit = {NameResolver.startNameResolver ! Net("",self)println(self.receiveWithin(1000){case x=>x}) }}

相关来源:DT大数据梦工厂,,微信公众号是DT_Spark,每天都会有大数据实战视频发布,请您持续学习。

相关资料:

scala深入浅出实战经典(1-64讲)完整视频、PPT、代码下载:

百度云盘:

腾讯微云:

360云盘: 访问密码45e2

版权声明:本文为博主原创文章,未经博主允许不得转载。

人之相识,贵在相知;人之相知,贵在知心。

Scala并发编程react、loop代码实战详解

相关文章:

你感兴趣的文章:

标签云: