From e55fa5a32b49205ea27b8706c43a48192376c798 Mon Sep 17 00:00:00 2001 From: asahi Date: Thu, 27 Mar 2025 19:04:06 +0800 Subject: [PATCH] =?UTF-8?q?doc:=20=E9=98=85=E8=AF=BBreactor=E6=96=87?= =?UTF-8?q?=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- spring/webflux/Reactor.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/spring/webflux/Reactor.md b/spring/webflux/Reactor.md index 0528767..f074f64 100644 --- a/spring/webflux/Reactor.md +++ b/spring/webflux/Reactor.md @@ -408,3 +408,10 @@ Flux.generate(() -> 0, (s, sink) -> { ``` #### 异步多线程生成`create` +`Flux.create`针对每个round能够产生多个元素,其暴露的sink类型为`FluxSink`。相对于`Flux.generate`,`Flux.create`方法并没有接收`state`的重载版本。 + +> `Flux.create`并不会将你的代码变为并行或是异步的. +> +> 如果在`Flux.create`中存在阻塞操作,那么将存在死锁的风险。即使使用了`subscribeOn`方法,在create lambda中执行长阻塞操作仍然会阻塞item的处理,因为item的source产生和下游处理都处于同一线程中,但是上游对线程的阻塞可能导致下游的消费逻辑无法被执行。 +> +> \ No newline at end of file