Java equivalent parallel extensions

I have experience using parallel extensions in .NET development, but I looked at some Java works that would benefit from the easy-to-use parallelism library. Does the JVM offer comparable tools for concurrent extensions?

+3
source share
4 answers

There is some limited support in java.util.concurrent since the creation of java 5, but full support for the java 7 function .

+2
source

java.util.concurrent. , . Java, .

, MapReduce, Functional Java. , , :

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;
+3
+2

JSR166, concurrency Java 7.

http://g.oswego.edu/dl/concurrency-interest/

2 : jsr166y ( concurrency Java 7) extra166y ( , ).

extra166y, ParallelArray . , ..

+1

Source: https://habr.com/ru/post/1711780/


All Articles