一组练习,旨在教会开发人员使用 Rx (Reactive Streams)
Java 中的 Reactive Streams
顺序程序在一个平坦的时间线上运行。每个任务都要等到前一个任务完成才能开始。在并发程序中,多个任务可能在同一时间段内运行,并且任何时候都可以开始新的任务。在线程程序中,引入并发性会以换取时间。为更多线程分配内存可以使应用程序服务器同时而不是顺序发出网络请求。线程网络请求可以大大减少服务器响应时间,但与所有的权衡一样,这种方法也有其局限性。未经检查的线程创建可能会导致服务器耗尽内存或花费过多时间进行上下文切换。线程池可以帮助管理这些问题,但在负载过重时,应用程序服务器池中的线程数量最终会耗尽。一旦发生这种情况,网络请求就会串行化,导致响应时间上升。此时,要再次降低响应时间的唯一方法是扩展更多服务器,从而增加成本。
反应式编程增加了额外的复杂性。反应式 API 通过回调保留对我们对象的引用。如果出现错误,我们必须确保这些反应式 API 释放对我们回调的引用,以便它们可以被垃圾收集,同时还要取消正在进行的任务。
暂无开放 Issues,或尚未同步最近议题。