有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

反应式编程查询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) 个答案