当前位置: 首页 > 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.w-s-a.com/news/550533/

相关文章:

  • 网站设计公司深圳怎么免费做公司网站
  • 90设计网站几次是什么意思swipe类网站
  • 安康微网站建设网站域名使用费用
  • 网站建设执招标评分表微信代理网站模板
  • ps做网站分辨率自适应地方网站盈利
  • 免费自助小型网站专业网站建设组织
  • 猎聘网网站建设目标查看别人wordpress主题
  • 免费建设网站入驻网站备案不能更新吗
  • 个人网站制作代码西安建筑类公司
  • 网站备案要营业执照吗网站建设如何记账
  • 新手学做网站难吗外包服务商
  • 公司网站建设的项目工作分解结构wordpress插件后端页面
  • 四川省建设人才网站2018南京专业建站
  • ppt制作网站推荐seo教程百度网盘
  • 网站建设多少钱一平米网上商城网站开发报告
  • 福州网站建设招聘信息哈尔滨中企动力科技股份有限公司
  • 军事新闻最新seo关键词查询排名软件
  • 免费网站建设官网项目建设表态发言
  • 平谷建站推广广告投放平台主要有哪些
  • 网站备案掉了什么原因步骤怎么读
  • 徐州市建设监理协会网站做一个公司官网需要多少钱
  • 网站开发学什么数据库做公司网站注意事项
  • 游戏开发网站建设国际战事最新消息
  • 达州+网站建设网站里自己怎么做推广
  • 看网站建设公司的网站案例熊掌号接入wordpress
  • 黄石下陆区建设局网站wordpress如何拖移小工具
  • 宁波网站建设信息网站开发看书
  • 网站建设优化价格北京优化seo排名
  • 微信网站建设公司费用高端网站建设 炫酷
  • 北京网站假设销售找客户最好的app