Akka并发编程——第七节:Actor模型(六)

  • 时间:
  • 浏览:1
  • 来源:uu快3APP_uu快3官方网址

代码运行结果如下:

[INFO] [03/21/2016 21:15:60 .592] [main] [Example12_9(akka://TypedActorSystem)]oSquare=Some(60 )[INFO][03/21/201621:15:60 .649][main][Example129(akka://TypedActorSystem)] iSquare=60

[INFO] [03/21/2016 21:15:60 .649] [main] [Example12_9$(akka://TypedActorSystem)] fSquare=60

Akka中的Typed Actor是Active Objects设计模式的实现,Active Objects模式将最好的办法的执行和最好的办法的调用进行解耦合,从而为应用程序引入并发性。Typed Actor由公用的接口和对应实现两每段构成,其上端厚度次的实现使用的是代理模式,即通过使用JDK中的动态代理来实现,在调用接口的最好的办法时自动采集到实现接口的对象上。Typed Actor的定义[ ]如下所示。

代码mySquarer.squareDontCare(10)是单向消息发送,最好的办法将在另外另2个 应用程序上异步地执行;val oSquare = mySquarer.squareNowPlease(10)、val iSquare = mySquarer.squareNow(10)为Request-reply消息发送,在特定时间内以阻塞的最好的办法执行,对于.squareNowPlease(10)最好的办法机会在对应时间内没办法 返回结果则返回值为None,有时候返回值为Option[Int]类型,对于squareNow(10)最好的办法机会在对应时间内无返回值则会抛出异常java.util.concurrent.TimeoutException,有时候返回Int类型值;val fSquare = mySquarer.square(10)为Request-reply-with-future式的消息发送,以非阻塞的最好的办法执行,可不可不都还可以 通过val result = Await.result(fSquare, 5 second)获取执行结果。全版代码如下所示。

trait Squarer中定义了另2个 最好的办法:

(1)def squareDontCare(i: Int): Unit最好的办法:返回值类型为Unit,它类似于于Untyped Actor中的fire-and-forget消息发送模型,即!和tell最好的办法调用。

(2)def square(i: Int): Future[Int]:返回值类型为Future[Int],它类似于于Untyped Actor中的send-request-reply消息发送模型,即?和ask最好的办法调用,此种调用是非阻塞的。

(3)def squareNowPlease(i: Int): Option[Int]:返回值类型为Option[Int](Option类可不可不都还可以 是scala.Option[_]也可不可不都还可以 是akka.japi.Option

上端代码演示的是使用构造函数和非默认构造函数创建Typed Actor,其中Squarer为代理的类型,SquarerImpl为具体实现的类型。

通过下列代码创建Typed Actor实例。

主要内容:

1. Typed Actor定义

2. Typed Actor创建

3. 消息发送

猜你喜欢

RDS SQL Server CPU高使用率性能优化

阿里云技术专家汪建明(风移)在2017杭州云栖大会中做了题为《RDSSQLServerCPU高使用率性能优化》的分享,就RDSSQLCPU使用率性能指标,索引、数据类型转换,N

2020-02-22

为什么都在做好人好事的人前面加“最美”

展开全版你对并就有回答的评价是?你对并就有回答的评价是?为你推荐:展开全版本回答由提问者推荐展开全版扫描二维码下载这是并就有称赞收起更多回答(1)一阵一阵推荐 我来答如果这是

2020-02-22

搭建React Native生态

充分利用阿里云现有资源管理和服务体系,引入里面件心智成熟图片 图片 图片 期期 期期的整套分布式计算框架,以应用为中心,帮助企业级客户轻松构建并托管分布式应用服...

2020-02-22

爱德华·摩根·福斯特,谁能给我些关于他的介绍,要中文的。谢谢。

福斯特的主要成可是我 五部小说和一部演说集。此外还有一部杂文集(《阿宾哲收获集》,1936)、两部短篇小说集和两部传记。他的第一部小说是《天使不敢涉足的地方》(1905),书

2020-02-22

名人名言的诗句有哪些。

*一思尚存,此志不懈。〔明〕胡居仁苦心人无不负,卧薪尝胆三千越甲可吞吴。〔清〕蒲松龄☆☆☆*生、死、穷、达不易其志。〔宋〕苏轼无志而建功。〔明〕朱棣已酬便无志。粱启超*立志不坚

2020-02-22