成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用Scala Actor時最差(或最好的)編程習慣?

原創
開發 后端
Scala Actor是Scala語言的一大亮點。本文是一則有關Scala Actors的問答,問題是:在使用Scala Actors的時候有哪些最差的使用習慣?

【51CTO快譯】前日,在stackoverflow上有一則關于Scala Actor的問題,很有代表性。該問題的答案對于學習Scala Actor的開發者會有一些幫助。這個問題是:

在使用Scala Actors的時候有哪些最差的使用習慣?

(如果還沒有執行最好編程習慣的自信,那么先注重回避最差的習慣倒不失為一個很好的想法。不過事實上下面這些答案中已經在建議一些優良的使用習慣了。)

51CTO編輯推薦:Scala編程語言專題

下面是一份不錯的答案(譯文):

◆任何地方都不要使用!?,否則會造成系統鎖定。

◆總是從actor類子系統線程發送消息。如果這意味著要通過actor.actor方法創造一個暫時的actor類,那么代碼如下:

  1. case ButtonClicked(src) => Actor.actor { controller ! SaveTrade(trdFld.text) }   

◆給你的actor的反應(reactions)加一個“其它消息”處理程序。否則就不可能判斷你是否在給一個錯誤的actor類發送消息:

  1. case other => log.warning(this + " has received unexpected message " + other  

◆對于你的原始actor類,不要使用actor.actor方法,而是用actor類的子類(subclass)。這么做的原因是只有通過子類你才能提供一個敏感toString方法。還有,如果你的日志中到處都有像下面的聲明的話,調試actor類將非常的困難:

  1. 12:03 [INFO] Sending RequestTrades(2009-10-12) to scala.actors.Actor$anonfun$1  

◆把你系統中的actor類整理成文檔,并明確注明它們接受什么消息,以及它們怎么精確的計算響應。使用actor類會導致標準程序(一般是用一個方法壓縮)通過多個actor類之間的響應變成一個復雜的邏輯網絡。沒有好的文檔管理很容易搞混。

◆保證你可以跟你的actor類在響應循環之外進行通信,從而確定它的狀態。舉個例子,我總是聲明一個方法,使用一個和下面的編碼類似的MBean調用。否則,很難看出你的actor類是在運行,還是已經關掉,是否有一大長串消息等等。

  1. def reportState = {   
  2.   val _this = this   
  3.   synchronized {   
  4.     val msg = "%s Received request to report state with %d items in mailbox".format(   
  5.                    _this, mailboxSize)    
  6.     log.info(msg)   
  7.   }   
  8.   Actor.actor { _this ! ReportState }   
  9. }   

◆把你的actors連在一起并把trapExit設置成true,否則它們會悄無聲息的失敗,這意味著你的程序不會按你所設計的執行,并且當消息留在actor的郵箱里時程序會溢出存儲器。

對于以上這些Scala Actors的使用建議,你有什么看法么?

【編輯推薦】

  1. 從Java走進Scala:一步步教你使用Scala Actor
  2. Scala Actor:多線程的基礎學習
  3. 十二步學會Scala(1):從下載安裝到定義方法
  4. Scala講座:面向對象和函數式的特點總結
  5. 萬物皆對象:介紹Scala對象
責任編輯:yangsai 來源: 51CTO.com
相關推薦

2010-01-15 09:15:09

Scala Actor并發

2009-08-03 11:07:18

Scala Actor

2009-08-14 11:35:01

Scala Actor

2011-04-13 10:16:41

編程習慣

2010-09-14 15:34:41

Scala

2018-11-07 10:20:20

職業科技淘汰

2009-07-09 00:25:00

ScalaSet類Map類

2009-07-09 00:25:00

ScalaListTuple

2017-09-01 11:01:22

開發編程習慣

2015-08-17 10:13:35

ios習慣高效

2011-03-29 12:41:49

編程

2010-11-17 11:31:22

Scala基礎面向對象Scala

2009-09-24 09:41:00

Scala講座Scala

2009-06-05 12:54:03

ScalaActor內存泄露

2015-08-20 10:50:33

iOS高效編程習慣

2014-03-06 09:43:54

代碼編程習慣

2015-11-16 10:59:02

流量提速降費應用軟件

2009-07-24 18:02:46

ASP.NET編程

2010-09-14 13:22:17

Scala編程指南Scala

2009-01-03 14:34:49

ibmdwPHP
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人激情视频 | 欧美成人精品一区二区男人看 | 三级欧美 | 精品日韩欧美一区二区 | 亚洲国产成人精品一区二区 | 午夜精品三区 | 日本不卡高字幕在线2019 | 天天躁日日躁xxxxaaaa | 亚洲在线高清 | 中文字幕免费观看 | 欧美一区二区视频 | 中文字幕日韩一区 | 国产色婷婷精品综合在线手机播放 | 亚洲国产一区二区三区在线观看 | 天天想天天干 | 久久精品这里精品 | 超碰520| 成年免费在线观看 | 成人亚洲精品 | 精品国产乱码久久久久久蜜臀 | 亚洲一区 中文字幕 | 最新中文字幕在线 | 久久久成 | 本道综合精品 | 黑人中文字幕一区二区三区 | 97精品国产手机 | 国内精品视频在线观看 | 在线天堂免费中文字幕视频 | 欧美在线一区二区三区 | 国产成人av电影 | 日日干夜夜草 | 中文字幕视频在线观看 | 99热最新网址 | 色资源在线 | 国产高清视频一区二区 | 欧美视频偷拍 | 酒色成人网 | 极品的亚洲 | 国产日韩欧美中文字幕 | 中文字幕免费 | 中文字幕视频在线观看 |