码迷,mamicode.com
首页 > 编程语言 > 详细

scala并发编程原生线程Actor、Case Class下的消息传递和偏函数实战

时间:2017-05-31 18:52:56      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:持续学习   360云盘   经典   超时   http   person   name   详细   revoke   

參考代码:


import scala.actors._

case class Person(name:String,age:Int)
class HelloActor extends Actor{
  def act(){
    while(true){
      receive{
        case Person(name,age)=>{ //偏函数
          println("Name: "+ name + ":" +"Age:" +age)
          sender ! "Echo!!!"
        }
        case _ => println("Something else...")
      }
    }
  }
}

object Actor_With_CaseClass {
  def main(args: Array[String]): Unit = {
    val hiActor = new HelloActor
    hiActor.start
    hiActor ! Person("Spark",6)
    
    self.receive{case msg=> println(msg)}
//    self.receiveWithin(1000){case msg=> println(msg)} //指定超时时间,不会一直等待下去
  }
}


//不同的Actor通讯的四种模式有:
//1.全局的Actor、2.在构建一个Actor时能够有它的引用即能够传递參数过来、
//3.消息传递时,消息的接收者处理完这个消息后要把结果交给此Actor
//4.返回消息给发送方,scala中使用sender关键词。



详细应用能够到spark源代码Master.scala类中找到,部分代码例如以下:
   
override def electedLeader(){self ! ElectedLeader}
override def revokedLeadership(){self ! RevokedLeadership}


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

相关资料:

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

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

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

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



scala并发编程原生线程Actor、Case Class下的消息传递和偏函数实战

标签:持续学习   360云盘   经典   超时   http   person   name   详细   revoke   

原文地址:http://www.cnblogs.com/mthoutai/p/6925190.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!