反应式编程查询Java
我不熟悉反应式编程,并试图理解它。
当我运行下面的程序时,不会抛出java.util.concurrent.TimeoutException
。为什么?我确信那里的for循环将需要1毫秒以上的时间
package com.example.demo;
import reactor.core.publisher.Mono;
import reactor.core.scheduler.Schedulers;
import java.time.Duration;
public class TestJava {
public Mono<String> flex() {
Mono<String> fruits = Mono.just("Apple").flatMap(value -> {
System.out.println(Thread.currentThread().getName());
System.out.println(Thread.currentThread().getId());
System.out.println(value);
int j = 0;
for(int i=0;i<300000000;i++) {
j+=i;
}
System.out.println(j);
return Mono.just(value.toUpperCase());
}).timeout(Duration.ofMillis(1), Schedulers.boundedElastic()).onErrorResume(e -> {
System.out.println(e);
return Mono.just("APLE");
});
return fruits;
}
public static void main(String[] args) throws java.lang.InterruptedException{
TestJava tj = new TestJava();
tj.flex().subscribe(s -> System.out.println(s));
Thread.sleep(2000);
}
}
共 (0) 个答案