1 / 8
文档名称:

Scala编程详解Actor入门.ppt

格式:ppt   大小:223KB   页数:8页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Scala编程详解Actor入门.ppt

上传人:资料分享 2019/9/4 文件大小:223 KB

下载得到文件列表

Scala编程详解Actor入门.ppt

相关文档

文档介绍

文档介绍:北风网项目实战培训Scala的Actor类似于Java中的多线程编程。但是不同的是,Scala的Actor提供的模型与多线程有所不同。Scala的Actor尽可能地避免锁和共享状态,从而避免多线程并发时出现资源争用的情况,进而提升多线程编程的性能。此外,ScalaActor的这种模型还可以避免死锁等一系列传统多线程编程的问题。Spark中使用的分布式多线程框架,是Akka。Akka也实现了类似ScalaActor的模型,其核心概念同样也是Actor。因此只要掌握了ScalaActor,那么在Spark源码研究时,至少即可看明白AkkaActor相关的代码。但是,换一句话说,由于Spark内部有大量的AkkaActor的使用,因此对于ScalaActor也至少必须掌握,这样才能学****Spark源码。引言1、Actor的创建、启动和消息收发(案例:ActorHelloWorld)2、收发caseclass类型的消息(案例:用户注册登录后台接口)3、Actor之间互相收发消息(案例:打电话)4、同步消息和Future课程大纲//Scala提供了Actortrait来让我们更方便地进行actor多线程编程,就Actortrait就类似于Java中的Thread和Runnable一样,是基础的多线程基类和接口。我们只要重写Actortrait的act方法,即可实现自己的线程执行体,与Java中重写run方法类似。//此外,使用start()方法启动actor;使用!符号,向actor发送消息;actor内部使用receive和模式匹配接收消息//案例:{defact(){while(true){receive{casename:String=>println("Hello,"+name)}}}}valhelloActor=()helloActor!"leo"Actor的创建、启动和消息收发//Scala的Actor模型与Java的多线程模型之间,很大的一个区别就是,ScalaActor天然支持线程之间的精准通信;即一个actor可以给其他actor直接发送消息。这个功能是非常强大和方便的。//要给一个actor发送消息,需要使用“actor!消息”的语法。在scala中,通常建议使用样例类,即caseclass来作为消息进行发送。然后在actor接收消息之后,可以使用scala强大的模式匹配功能来进行不同消息的处理。//案例:用户注册登录后台接口caseclassLogin(username:String,password:String)caseclassRegister(username:String,password:String)classUserManageActorextendsActor{defact(){while(true){receive{caseLogin(username,password)=>println("login,usernameis"+username+",passwordis"+password)caseRegister(username,