我在.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. .net 4.0並行擴展
- 4. 並行HttpWebRequests與無擴展
- 5. MemoryBarriers和並行擴展
- 6. 單問題並行擴展
- 7. Java中的RuntimeException擴展
- 8. 在擴展中的Java
- 9. 中繼器行擴展-java腳本
- 10. Android- Java類之間的區別擴展了AppcompatActivity並擴展了Activity並擴展了ActionBar?
- 11. 的Java擴展類
- 12. 擴展Java類
- 13. Java:擴展類
- 14. Android Java擴展
- 15. 擴展Java類
- 16. 從擴展運行方法擴展運行擴展運行
- 17. Java Swing:擴展DefaultComboBoxModel並覆蓋方法
- 18. Java Inetaddress,Swing擴展,並拋出異常
- 19. Java的二維數組進行擴展
- 20. 在LINQ中使用並行擴展或並行LINQ取
- 21. 在Java中擴展類
- 22. 在Java中擴展日曆
- 23. 擴展類在Java中
- 24. 在Java FX中擴展類?
- 25. 一行中不同列的擴展。擴展到整行
- 26. Java「擴展」對象
- 27. Java擴展示例
- 28. Java - 擴展問題
- 29. java擴展機制
- 30. 反射java?擴展
不幸的是,他們倒閉了。 http://yuiblog.com/crockford/的第一個講座解釋了原因。另外,它沒有IntelliJ插件。 – mark 2012-07-27 17:16:44