持續接收訊息
通過上乙個案例,actorreceiver呼叫receive來接收訊息,但接收一次後,actor就退出了。
object actorsender extends actor
}object actorreceiver extends actor
}object actormsgdemo
}
上述**,actorreceiver無法接收到actorsender傳送的第二條訊息。
我們希望actorreceiver能夠一直接收訊息,怎麼實現呢?
——我們只需要使用乙個while(true)迴圈,不停地呼叫receive來接收訊息就可以啦。
示例
示例說明
在上乙個案例的基礎上,讓actorreceiver能夠一直接收訊息
結果:
使用loop和react優化接收訊息
上述**,使用while迴圈來不斷接收訊息。
如果當前actor沒有接收到訊息,執行緒就會處於阻塞狀態
如果有很多的actor,就有可能會導致很多執行緒都是處於阻塞狀態
每次有新的訊息來時,重新建立執行緒來處理
頻繁的執行緒建立、銷毀和切換,會影響執行效率
在scala中,可以使用loop + react來復用執行緒。比while + receive更高效
示例
示例說明
使用loop + react重寫上述案例
參考**:
// 持續接收訊息
結果:
scala的actor的學習一
閱讀過一些actor的例子,在學習scala的actor 一,開發乙個scala檔案,另存actor1.scala檔案到指定的資料夾下,d temp import scala.actors.actor.匯入actor中的方法 package com.study.scala act hello sca...
Scala併發程式設計Demo(擴充套件Actor)
package com.zzk1 import scala.actors.actor atl enter導包 ctrl i 實現抽象方法 class actordemo extends actor case stop object test 第一步 建立actor例項 第二步 使用start啟動ac...
使用scala的actor模型實現併發的例子
created by lengmengwuxie on 2016 7 29.import scala.actors.import scala.actors.actor.設計方式 1,任何模擬物件在所有其他模擬物件完成對時間n的處理之前,都不應該處理時間n 1的事件 2,假設要實現所有模擬物件同步執行...