我想使用Akka框架併發地寫入多個文件,首先我創建了一個名爲MyWriter的類寫入文件,然後使用期貨我稱這個對象兩次跳轉2文件將爲我創建,但是當我監視程序的執行時,它首先填充第一個文件,然後填充第二個文件(阻塞/同步)。如何使用期貨與Akka的異步結果
問:我怎樣才能使代碼波紋管運行(無粘連/異步)
import akka.actor._
import akka.dispatch._
import akka.pattern.ask
import akka.util.Timeout
import scala.concurrent.Await
import scala.concurrent.duration._
import scala.concurrent.Future
import scala.concurrent.{ ExecutionContext, Promise }
import ExecutionContext.Implicits.global
class my_controler {
}
object Main extends App {
val system = ActorSystem("HelloSystem")
val myobj = system.actorOf(Props(new MyWriter), name = "myobj")
implicit val timeout = Timeout(50 seconds)
val future2 = Future { myobj ! save("lots of conentet") }
val future1 = Future { myobj ! save("event more lots of conentet") }
}
的MyWriter代碼:
case class save(startval: String)
class MyWriter extends Actor {
def receive = {
case save(startval) => save_to_file(startval)
}
爲什麼代碼不同時執行什麼想法嗎?
如何定義'save'? –
好吧,讓我編輯我的問題,添加 – CruncherBigData
請記住,硬盤不喜歡並行訪問。他們放慢速度 - 很多。所以如果它們在同一個hd上,不要並行地寫文件。還有其他人已經提到過,不要在未來包裝與演員的溝通。 – SpiderPig