MyS*_*ver 3 java parallel-processing java-stream
我正在使用Java 8 Streams.我有一个自定义函数,foo()它产生一个对象,我想并行传输它创建的对象.我知道foo()不是线程安全的.
如果我写Stream.generate(foo).parallel(),将以foo()异步方式调用?即,对象是串行生成的,并传递给并行线程,还是多个线程都会根据需要通过调用生成对象foo()?
如您可以通过快速实验观察到的,将从多个线程调用供应商:
Stream.generate(() -> Thread.currentThread().getId())
.parallel()
.limit(100000)
.distinct()
.forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)