Java 异步编程与反应式编程
这个问题在我脑海里大约有一年了。实际上,异步和非阻塞有什么区别吗。当我们在代码中调用阻塞部分时,它就变成了阻塞,这是同步的,同时也不是非阻塞的 如果我们在主线程之外创建另一个线程来进行异步编程,我们必须返回一些值,因此我们必须在java中定义Java 异步编程与反应式编程,java,asynchronous,reactive-programming,Java,Asynchronous,Reactive Programming,这个问题在我脑海里大约有一年了。实际上,异步和非阻塞有什么区别吗。当我们在代码中调用阻塞部分时,它就变成了阻塞,这是同步的,同时也不是非阻塞的 如果我们在主线程之外创建另一个线程来进行异步编程,我们必须返回一些值,因此我们必须在java中定义join()方法,并且join()是阻塞操作,那么它实际上是异步的吗 我需要知道以下问题的答案 如果阻塞类似于同步,那么异步和非阻塞之间有什么不同。应该类似吗?若否,原因为何 无阻塞的反应式编程是完全异步编程吗 考虑两种并行算法,生产者和消费者。若消费者
join()
方法,并且join()
是阻塞操作,那么它实际上是异步的吗
我需要知道以下问题的答案
考虑两种并行算法,生产者和消费者。若消费者的工作速度比生产者快,我们必须阻止消费者算法,直到生产者提供新数据。通常,我们有两种方法阻止消费者:
我试图在模块中收集异步协议。可以(重新)发明其他协议,例如,带或不带背压的字节流,模拟到同步和同步。我确信任何同步协议都有它的异步类似物。它们密切相关,但反应式协议也“懒惰”;请参阅背压的概念。正如您在第2点中为更快的生产者解释的那样,它给人的印象是消费者正在从生产者那里获取数据。但是反应式编程是关于推模式的,不是吗?