0
多線程與未來,我知道的多線程未來一點點,如:我想知道關於斯卡拉
for(i <- 1 to 5) yield future {
println(i)
}
但這是所有線程做同樣的工作。
所以,我想知道如何使兩個線程同時做不同的工作。
另外,我想知道是否有任何方法知道所有的線程是完整的?
請給我簡單的東西。
多線程與未來,我知道的多線程未來一點點,如:我想知道關於斯卡拉
for(i <- 1 to 5) yield future {
println(i)
}
但這是所有線程做同樣的工作。
所以,我想知道如何使兩個線程同時做不同的工作。
另外,我想知道是否有任何方法知道所有的線程是完整的?
請給我簡單的東西。
首先,機會是你可能會很樂意與parallel collections,特別是如果你需要的是在並行使用多線程緊縮一些數據:
val lines = Seq("foo", "bar", "baz")
lines.par.map(line => line.length)
雖然適用於有限的數據集並行的集合,指數期貨更多的是面向事件的處理,事實上,未來定義任務,從執行細節中抽象出來(一個線程,多個線程,特定任務如何固定到線程) - 所有這些都由execution context控制。你可以用期貨做的事情是增加回調(在成功時,在失敗時,在兩者上),用另一個未來構成它或等待結果。所有這些概念在official doc中都有很好的解釋,值得一讀。