我有以下例子:
Flux.just(1,2,3,4,5,6,7,8)
.flatMap(integer -> {
System.out.println("val:" + integer + ", thread:" + Thread.currentThread().getId());
return Mono.just(integer);
}, 5)
.repeat()
.subscribeOn(Schedulers.parallel())
.subscribe();
日志如下:
val:4, thread:14
val:5, thread:14
val:6, thread:14
val:7, thread:14
val:8, thread:14
val:1, thread:14
val:2, thread:14
val:3, thread:14
为什么到处都是同一根线??如何修改示例,使其在多个线程中执行?
2条答案
按热度按时间qyyhg6bp1#
如果希望每个重复的通量位于不同的线程上,可以移动
publishOn
以前,像这样:现在的输出是这样的:
如果希望每个整数位于不同的线程中,可以执行以下操作:
输出变为:
tyg4sfes2#
你需要使用
parallel
操作如下: