doc: 阅读reactor schedulers文档

This commit is contained in:
asahi
2025-04-04 22:16:36 +08:00
parent 78eb257c4f
commit b5f09da87d

View File

@@ -626,7 +626,23 @@ reactor提供了两种方法来切换执行的上下文
`subscribeOn`影响订阅的过程通常推荐将其放在source之后。 `subscribeOn`影响订阅的过程通常推荐将其放在source之后。
##### `subscribeOn`原理 ##### `subscribeOn`原理
`FluxSubscribeOn#subscribeOrReturn`中,会通过`scheduler#createWorker`创建worker `FluxSubscribeOn#subscribeOrReturn`中,会通过`scheduler#createWorker`创建worker并通过worker来对`执行source.subscribe`的方法进行调度。
故而在consumer执行subscribe时随着reactor chain从尾到头下游subscriber都会调用上游publisher的subscribe方法。在`FluxSubscribeOn`调用上游的subscribe时则是会通过worker在进行调度实际调用在worker中执行。
subscribeOn方法使用方式如下
```java
Scheduler s = Schedulers.newParallel("parallel-scheduler", 4);
final Flux<String> flux = Flux
.range(1, 2)
.map(i -> 10 + i)
.subscribeOn(s)
.map(i -> "value " + i);
new Thread(() -> flux.subscribe(System.out::println));
```