多核上的Java并行执行

多核上的Java并行执行,java,parallel-extensions,Java,Parallel Extensions,我想知道是否存在一种在Java中并行查询的方法,或者是否存在类似于C和Linq的框架或库: var query=来源于source.aspallel.WithDegreeOfParallelism2中的项 其中Computeitem>42 选择项目; 如果我不能并行化查询,如果我可以在c语言中对每个并行化的查询执行类似的操作: Parallel.ForEachfiles,currentFile=> { //你在这里做的计算越多,就越大 //与顺序foreach循环相比的加速比。 字符串文件名=S

我想知道是否存在一种在Java中并行查询的方法,或者是否存在类似于C和Linq的框架或库:

var query=来源于source.aspallel.WithDegreeOfParallelism2中的项 其中Computeitem>42 选择项目; 如果我不能并行化查询,如果我可以在c语言中对每个并行化的查询执行类似的操作:

Parallel.ForEachfiles,currentFile=> { //你在这里做的计算越多,就越大 //与顺序foreach循环相比的加速比。 字符串文件名=System.IO.Path.GetFileNamecurrentFile; System.Drawing.Bitmap Bitmap=新的System.Drawing.BitmapcurrentFile; bitmap.RotateFlipSystem.Drawing.rotateflipstype.Rotate180FlipNone; 位图.SaveSystem.IO.Path.CombinenewDir,文件名; //偷看幕后,看看工作是如何并行的。 //但是请注意:控制台的线程争用会减慢并行循环!!! Console.WriteLineProcessing{0}在线程{1}上,文件名, Thread.CurrentThread.ManagedThreadId; } 如果你发布了任何框架或库,你能告诉我你使用它的经验吗? 谢谢你的时间


关于c和linq,您可以在这里找到文档:

也许可以帮助您?这里是

没有直接翻译。首先,Java没有LINQ,也没有任何标准的并行集合类

也许是最合适的


请注意,虽然它是针对groovy的,但它的API在java中是完全可用的

,这对递归任务来说是很好的,但无助于提高查询的性能,而且它不像编写关键字那样简单,我不能以简单的方式将执行扩展到更多线程,因此我希望能有更简单的方法使用线程数!=提高速度,你应该理解它,但你可以使用,只需ExecutionService以并行进程的形式提交新任务查询。@frank,根据这条线索判断,我是对的F/J不太适合Java 8即将推出,即明年-在此之前,您需要自己编写或查找库…:thx下一年即将到来:DJDK8应该会看到Collection.parallel和不过是可拆分的。@frank不认为在这方面有太多的争论。