2011-09-07 41 views
0

我想要做這樣的事情:創建並行收集W/2.8

(1 to 100).parallel(20).filter(_ > 20).foreach(sendViaHttp) 
List(1,3,5,9,100).parallel(3).map(fetchFromDatabase) 

這意味着,「拿一個集合,創建具有N個線程的線程池,並運行過濾器等在該線程池」。我對2.8集合(以及普通的scala)的理解是粗略的。我用CanBuildFrom弄弄了一下,但我很確定我所做的是錯誤的,或者只是一個壞主意。

有人可以幫助一些例子或指針?

+0

你對2.8有很強的限制嗎? 2.9具有[build-in](http://nikolajlindberg.blogspot.com/2011/04/testing-scala-290-rc2-parallel.html)並行集合。 –

+0

即使我可以切換到2.9,我仍然需要控制並行度。 2.9是否支持? –

+3

是的,請看這裏:http://stackoverflow.com/questions/5424496/scala-parallel-collections-degree-of-parallelism/5425354 – axel22

回答

0

彙總的意見到一個可接受的答案:

如果你可以切換到斯卡拉2.9如果你想控制的並行線程,你可以這樣做使用advice here量具有build-in並行收集