zoukankan      html  css  js  c++  java
  • 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)
            act
          case "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.start
        NameResolver ! Net("www.baidu.com",self)
        
        println(self.receiveWithin(1000){case x=>x})
      }
    }


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

    相关资料:

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

    百度云盘:http://pan.baidu.com/s/1c0noOt6

    腾讯微云:http://url.cn/TnGbdC

    360云盘:http://yunpan.cn/cQ4c2UALDjSKy  訪问password45e2






  • 相关阅读:
    通向全栈之路——(4)nginx反向代理配置
    通向全栈之路——(3)node环境搭建
    通向全栈之路——(2)服务器安全设置
    通向全栈之路——(1)服务器新增用户及授权
    window.location.href跳转至空白页
    webpack 1.x 学习总结
    win7下使用apache ab 比较测试node与 tomcat
    Enum,Int,String的互相转换
    读写appSettings配置节方法
    SC命令
  • 原文地址:https://www.cnblogs.com/zsychanpin/p/6722466.html
Copyright © 2011-2022 走看看