日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > 服務(wù)器 > Akka并發(fā)編程——第八節(jié):Actor模型(七)

Akka并發(fā)編程——第八節(jié):Actor模型(七)

來源:程序員人生   發(fā)布時間:2016-08-02 08:25:15 閱讀次數(shù):2668次

本節(jié)主要內(nèi)容

停止運行Typed Actor

當(dāng)Typed Actor不再需要時要將其停止,有3種方法停止Typed Actor的運行:
(1)通過system.shutdown()停止ActorSystem中所有的Typed Actor;
(2)調(diào)用TypedActor(system).stop(mySquarer)停止指定的Typed Actor;
(3)調(diào)用TypedActor(system).poisonPill(otherSquarer)停止指定的Typed Actor。
具體使用代碼以下:

/* * 停止Typed Actor */ object Example_3 extends App { import akka.event.Logging import scala.concurrent.{ Promise, Future } import akka.actor.{ TypedActor, TypedProps } import scala.concurrent.duration._ trait Squarer { //fire-and-forget消息 def squareDontCare(i: Int): Unit //非阻塞send-request-reply消息 def square(i: Int): Future[Int] //阻塞式的send-request-reply消息 def squareNowPlease(i: Int): Option[Int] //阻塞式的send-request-reply消息 def squareNow(i: Int): Int } //混入PostStop和PreStart class SquarerImpl(val name: String) extends Squarer with PostStop with PreStart { import TypedActor.context val log = Logging(context.system,TypedActor.self.getClass()) def this() = this("SquarerImpl") def squareDontCare(i: Int): Unit = i * i def square(i: Int): Future[Int] = Promise.successful(i * i).future def squareNowPlease(i: Int): Option[Int] = Some(i * i) def squareNow(i: Int): Int = i * i def postStop(): Unit={ log.info ("TypedActor Stopped") } def preStart(): Unit={ log.info ("TypedActor Started") } } val system = ActorSystem("TypedActorSystem") val log = Logging(system, this.getClass) //使用默許構(gòu)造函數(shù)創(chuàng)建Typed Actor val mySquarer: Squarer = TypedActor(system).typedActorOf(TypedProps[SquarerImpl](),"mySquarer") //使用非默許構(gòu)造函數(shù)創(chuàng)建Typed Actor val otherSquarer: Squarer = TypedActor(system).typedActorOf(TypedProps(classOf[Squarer], new SquarerImpl("SquarerImpl")), "otherSquarer") //Request-reply-with-future 消息發(fā)送 val fSquare = mySquarer.square(10) val result = Await.result(fSquare, 5 second) log.info("fSquare="+result) //調(diào)用poisonPill方法停止Actor運行 TypedActor(system).poisonPill(otherSquarer) //調(diào)用stop方法停止Actor運行 TypedActor(system).stop(mySquarer) //system.shutdown() }

代碼運行結(jié)果以下所示。

[INFO] [03/21/2016 22:41:51.119] [TypedActorSystem-akka.actor.default-dispatcher-2] [$Proxy0(akka://TypedActorSystem)] TypedActor Started [INFO] [03/21/2016 22:41:51.123] [TypedActorSystem-akka.actor.default-dispatcher-2] [$Proxy1(akka://TypedActorSystem)] TypedActor Started [INFO] [03/21/2016 22:41:51.124] [main] [Example12_10$(akka://TypedActorSystem)] fSquare=100 [INFO] [03/21/2016 22:41:51.131] [TypedActorSystem-akka.actor.default-dispatcher-5] [$Proxy1(akka://TypedActorSystem)] TypedActor Stopped [INFO] [03/21/2016 22:41:51.131] [TypedActorSystem-akka.actor.default-dispatcher-3] [$Proxy0(akka://TypedActorSystem)] TypedActor Stopped

代碼中類SquarerImpl 混入了PreStart和PostStop兩個trait:class SquarerImpl(val name: String) extends Squarer with PostStop with PreStart,這樣的話在創(chuàng)建TypedActor之前和停止TypedActor后能夠進(jìn)行相應(yīng)的操作,本例中主要是為監(jiān)視TypedActor的創(chuàng)建和停止進(jìn)程。代碼TypedActor(system).stop(mySquarer)通過stop方法停止TypedActor,而TypedActor(system)
.poisonPill(otherSquarer)通過調(diào)用poisonPill方法停止運行TypedActor。

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 国产高清视频一区二区 | 黄色成人在线观看 | 亚洲国产一区二区视频 | 久久国产精品毛片 | 在线观看av网站永久 | 九九九九九依人 | 717影视三级理论电影在线 | 91在线免费看 | 日韩成人免费在线 | 天堂av一区二区三区在线播放 | www.嫩草影院 | 成人av在线电影 | 久久久精品| 免费在线成人av | 成人久久久精品乱码一区二区三区 | 一区二区国产在线 | 日韩精品一区二区视频 | www.黄在线看 | 亚洲国产一区视频 | 狠狠综合| 日韩免费电影在线观看 | 麻豆视频在线 | 高清国产一区 | 青青草欧美 | 欧美日韩综合视频 | 欧美性猛交xxxxx水多 | 日韩专区在线播放 | 国产成人精品一区二区在线观看 | 九九热在线视频观看 | 国产精品毛片久久久久久 | 免费视频一区二区 | 中文字幕综合网 | 中文字幕日韩av | 永久免费网站 | 色播av | 欧美精品一区二区三区一线天视频 | 在线观看日韩视频 | 亚洲成人精品在线观看 | 人人干人人干 | 欧美一区二区三区 | 在线欧美一区 |