我在.Net开发中使用并行扩展有一些经验,但我正在考虑在Java中做一些工作,这将从易于使用的并行性库中受益。 JVM是否提供了任何类似的并行扩展工具?Java中的并行扩展
3
A
回答
2
自java 5以来,在java.util.concurrent包中有一些有限的支持,但完全支持的是java 7 feature。
3
您应该熟悉java.util.concurrent包。它具有用于基于更高级库的并行编程的简单和强大的基元。这种库的一个例子是Functional Java,其具有an easy-to-use module for parallel programming。
例如,下面是使用Functional Java编写的规范MapReduce示例。据统计单词的数量在一组文件,假设文件的字符流:
public static long countWords(final List<Stream<Character>> documents,
final ParModule m)
{ return m.parFoldMap(documents,
new F<Stream<Character>, Long>()
{ public Long f(final Stream<Character> document)
{ return (long)fromStream(document).words().length(); }},
longAdditionMonoid)
.claim(); }
为了实例ParModule,你给它一个并行策略。您可以实施自己的策略,或使用提供的策略。下面是一个使用的16个线程固定池:
ExecutorService pool = newFixedThreadPool(16);
ParModule m = parModule(executorStrategy(pool));
您需要为例如以下进口上面:
import fj.F;
import fj.data.Stream;
import fj.control.parallel.ParModule;
import static fj.control.parallel.ParModule.parModule;
import static fj.pre.Monoid.longAdditionMonoid;
import static fj.data.LazyString.fromStream;
import static fj.control.parallel.Strategy.executorStrategy;
import static java.util.concurrent.Executors.newFixedThreadPool;
import java.util.concurrent.ExecutorService;
1
下面是JSR166工作组,是谁写的新并发网站类Java 7中
http://g.oswego.edu/dl/concurrency-interest/
有上市2包:jsr166y(新并发类为Java 7)和extra166y(各种不会因为某种原因包含的类)。
extra166y,ParallelArray
中的一个类非常有用。它会自动并行化二进制搜索,合并排序等。
2
您应该定义尝试Ateji Parralel扩展。 http://www.ateji.com/multicore/
相关问题
- 1. 并行扩展
- 2. 反应式扩展/并行扩展中的最大线程数
- 3. 单问题并行扩展
- 4. MemoryBarriers和并行扩展
- 5. 并行HttpWebRequests与无扩展
- 6. .net 4.0并行扩展
- 7. Android- Java类之间的区别扩展了AppcompatActivity并扩展了Activity并扩展了ActionBar?
- 8. 扩展Java类
- 9. 扩展Java类
- 10. Android Java扩展
- 11. 从扩展运行方法扩展运行扩展运行
- 12. Java Swing:扩展DefaultComboBoxModel并覆盖方法
- 13. Java Inetaddress,Swing扩展,并抛出异常
- 14. 在LINQ中使用并行扩展或并行LINQ取
- 15. 在Java中扩展日历
- 16. 扩展类在Java中
- 17. Java扩展示例
- 18. Java“扩展”对象
- 19. 反射java?扩展
- 20. java扩展机制
- 21. Java Swing:扩展TreeNode
- 22. Java - 扩展问题
- 23. 的Java Swing JTree的扩展
- 24. Browserify并扩展Buffer.prototype
- 25. 从LibreOffice扩展运行宏JAVA
- 26. Java线程扩展可运行状态
- 27. Java:在运行时扩展类
- 28. 并行扩展和锁定 - C#
- 29. 如何处理使用并行扩展
- 30. 使用并行扩展索引Lucene
不幸的是,他们倒闭了。 http://yuiblog.com/crockford/的第一个讲座解释了原因。另外,它没有IntelliJ插件。 – mark 2012-07-27 17:16:44