Java 为什么间隔不';我什么也不排放?

Java 为什么间隔不';我什么也不排放?,java,rx-java2,Java,Rx Java2,为什么此代码不发出任何信息: Observable<Long> observable1 = Observable.interval(3, 1000, TimeUnit.MILLISECONDS); observable1.subscribe(l -> System.out.println(l)); Observable-observable1=可观测的时间间隔(31000,时间单位毫秒); 可观察1.订阅(l->System.out.println(l)); 首先需要知道的是

为什么此代码不发出任何信息:

Observable<Long> observable1 = Observable.interval(3, 1000, TimeUnit.MILLISECONDS);
observable1.subscribe(l -> System.out.println(l));
Observable-observable1=可观测的时间间隔(31000,时间单位毫秒);
可观察1.订阅(l->System.out.println(l));

首先需要知道的是,RXJava本质上是异步的。 很难说你是否意识到这一点,仅凭这段话来判断。
如果您只想阻止并打印它,您应该使用blockingSubscribe来代替subscribe。

您需要知道的第一件事是rx java本质上是异步的。 很难说你是否意识到这一点,仅凭这段话来判断。 如果您只想阻止并打印它,您应该使用blockingSubscribe代替subscribe。

intervall()
操作,它会分配一个新线程。程序在新线程有机会运行之前终止。您可以通过暂停主线程一段时间来解决这个问题

Observable<Long> observable1 = Observable.interval(3, 1000, TimeUnit.MILLISECONDS);
observable1.subscribe(l -> System.out.println(l));

try {
    Thread.sleep(5000);
}
catch(InterruptedException e) { }
Observable-observable1=可观测的时间间隔(31000,时间单位毫秒);
可观察1.订阅(l->System.out.println(l));
试一试{
睡眠(5000);
}
捕获(中断异常e){}
现在,您将看到一些输出。

intervall()
在上操作,它分配一个新线程。程序在新线程有机会运行之前终止。您可以通过暂停主线程一段时间来解决这个问题

Observable<Long> observable1 = Observable.interval(3, 1000, TimeUnit.MILLISECONDS);
observable1.subscribe(l -> System.out.println(l));

try {
    Thread.sleep(5000);
}
catch(InterruptedException e) { }
Observable-observable1=可观测的时间间隔(31000,时间单位毫秒);
可观察1.订阅(l->System.out.println(l));
试一试{
睡眠(5000);
}
捕获(中断异常e){}
现在,您将看到一些输出