当前位置: 首页 > news >正文

家具设计师培训班长沙网络优化推广公司

家具设计师培训班,长沙网络优化推广公司,网站建设微金手指排名,自己怎样建立网站Scala中的Actor模型 概念 Actor Model是用来编写并行计算或分布式系统的高层次抽象#xff08;类似java中的Thread#xff09;让程序员不必为多线程模式下共享锁而烦恼。Actors将状态和行为封装在一个轻量的进程/线程中#xff0c;但是不和其他Actors分享状态#xff0c;…Scala中的Actor模型 概念 Actor Model是用来编写并行计算或分布式系统的高层次抽象类似java中的Thread让程序员不必为多线程模式下共享锁而烦恼。Actors将状态和行为封装在一个轻量的进程/线程中但是不和其他Actors分享状态每个Actors有自己的世界观当需要和其他Actors交互时通过发送事件和消息发送是异步的非堵塞的(fire-andforget)发送消息后不必等另外Actors回复也不必暂停每个Actors有自己的消息队列进来的消息按先来后到排列这就有很好的并发策略和可伸缩性可以建立性能很好的事件驱动系统。 2.12版本后actor彻底从scala中抽离了出来所以我们在使用前需要引入相应的lib。 dependencygroupIdcom.typesafe.akka/groupIdartifactIdakka-actor_2.12/artifactIdversion2.5.9/version /dependencyActor的特征 ActorModel是消息传递模型,基本特征就是消息传递消息发送是异步的非阻塞的消息一旦发送成功不能修改Actor之间传递时接收消息的actor自己决定去检查消息actor不是一直等待是异步非阻塞的 具体写法 Actor发送接收消息 import akka.actor.Actor import akka.actor.ActorSystem import akka.actor.Propsclass HelloActor extends Actor {override def receive: Receive {case hey println(hey yourself)case _ println(hehe)} }object Main extends App {val system ActorSystem(HelloSystem)val helloActor system.actorOf(Props[HelloActor], name helloActor)helloActor ! heyhelloActor ! good morning }Actor与Actor之间通信 import akka.actor.{Actor, ActorRef, ActorSystem, Props}class MyActor extends Actor {override def receive: Receive {case msg: String {println(msg)Thread.sleep(1000)sender() ! 你说啥}case Int println(你竟然说数字)case _ println(default)} } class MyActor2 extends Actor {private val other: ActorRef context.actorOf(Props(new MyActor), actor1child)override def receive: Receive {case msg: String {println(msg)other ! nihao}} } object Test extends App {private val system: ActorSystem ActorSystem(system)private val actor: ActorRef system.actorOf(Props(new MyActor2), actor1)actor ! 你好actor2 }综述 Scala 中的 Actor 模型是一种并发编程模型用于处理并发和并行计算。Actor 模型的核心概念是基于消息传递和非共享状态并通过轻量级的执行单元称为 Actor来实现并发和协作。 在 Scala 中可以使用 Akka 框架来实现 Actor 模型。Akka 是一个构建可扩展、高性能和弹性系统的工具包它提供了强大的 Actor 模型库。 下面是一些关于 Scala 中 Actor 模型的基本概念和用法 Actor 的创建和消息传递 import akka.actor.{Actor, ActorSystem, Props}class MyActor extends Actor {def receive: Receive {case message: String println(sReceived message: $message)} }val system ActorSystem(MySystem) val myActor system.actorOf(Props[MyActor], myActor)myActor ! Hello在上述示例中我们定义了一个 MyActor 类它继承自 Actor 并重写了 receive 方法来处理消息。通过 ActorSystem 和 Props我们创建了一个名为 “MySystem” 的 Actor 系统并创建了一个名为 “myActor” 的 Actor 实例。然后我们通过 ! 运算符向 myActor 发送了一条消息 “Hello”。 Actor 之间的相互协作 class GreetingActor extends Actor {def receive: Receive {case message: String val senderActor sender()println(sGreetingActor received message: $message)senderActor ! Nice to meet you} }val greetingActor system.actorOf(Props[GreetingActor], greetingActor) val response myActor.ask(How are you?)(timeout Timeout(5.seconds)).mapTo[String]response.onComplete {case Success(message) println(sResponse: $message)case Failure(ex) println(sFailed: ${ex.getMessage}) }在上述示例中我们创建了一个 GreetingActor 类它也是一个 Actor。在 receive 方法中它接受到消息后会打印出接收到的消息并通过 sender() 方法获取发送消息的 Actor并向其发送一条回复消息。 在主程序中我们使用 ask 方法向 myActor 发送一个问候消息并等待回复。通过 mapTo 方法将回复消息转换为字符串类型并使用 onComplete 处理回复结果。 总之Scala 中的 Actor 模型提供了一种高效且易于编写并发代码的方式。Akka 框架为 Scala 提供了完善的 Actor 模型实现使我们能够轻松构建并发和并行计算应用程序。
http://www.hkea.cn/news/14321528/

相关文章:

  • 做研究的网站怎么下载有风险的软件
  • 企业网站建设计划书html什么意思
  • 营销网站建设的目的手机版网站开发用什么语言
  • 企业网站建设立项请示wordpress登录工具
  • 网站怎么被搜到首页室内设计公司免费网站
  • 国外移动网站设计往网站上传照片怎么做
  • 用电脑做服务器的建一个网站淘宝的网络营销模式
  • 做dnf辅助网站什么网站可以做机票行程单
  • 郑州 做网站青海服装网站建设公司
  • 做照片书的网站网站美化教程下载
  • 高清的宝安网站推广wordpress制作网站步骤
  • 网站开发计划甘特图四川平台网站建设哪里有
  • 凡科电脑版登录首页关键词排名优化公司哪家好
  • 网站什么时候恢复彩色襄阳seo研究中心
  • 手机触屏网站模板360街景地图最新版
  • wordpress推送到公众号seo的培训网站哪里好
  • 阿里云网站方案建设书模板大庆做网站比较好的公司
  • 凡科手机网站设置问题模板网站视频
  • 简述商务网站建设的步骤代驾平台
  • 西安千度网站建设无锡百度信息流
  • 网站收录 百度自动增加参数北太平庄做网站公司
  • 镇海企业建站手机报价网最新价格
  • 网站开发与维护项目招标企业推广策划书模板
  • 定西地网站建设成都建设项目环境影响登记网站
  • 模板式自助建站wordpress 友情连接
  • 网站seo设置是什么wordpress设置积分
  • 电子商务网站需要做那些准备工作wordpress 刷新缓存
  • 沈阳做网站公司哪家好弄个微信小程序多少钱
  • 可以刮刮卡的网站企业建设网站的目的( )
  • 香河家具城网站建设目标wordpress 定制