Scala深入浅出进阶经典 第68讲:Scala并发编程原生线程Actor、Cass Class下的消息传递和偏函数实战解析及其在Spark中的应用源码解析

package com.dt.scalaInAction.demo_068

import scala.actors.Actor
import scala.actors.Actor._
/**
 * Scala并发编程原生线程Actor、Cass Class下的消息传递和偏函数实战解析及其在Spark中的应用源码解析
 */
//这里定义一个caseclass作为一个消息体
case class Person(val name: String, val age: Int)
class HelloActor extends Actor {
    def act = {
        while(true) {
            receive {
                //用case Class进行模式匹配消息
                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)
        
        //让主线程接受消息(把主线程作为Actor使用) 默认是柱塞的
        self.receive{case msg => println("self.receive mseeage:"+msg)}
        //receiveWithin偏函数 参数设置是超时时间
        //self.receiveWithin(1){case msg => println("self.receive mseeage:"+msg)}
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值