近些年来,从RxJava,到Java 9中引入的响应式流API,在到Spring WebFlux,乃至MongoDB推荐使用的响应式Java客户端驱动等,响应式编程在很多场合被高频地提及。我们可以大胆猜测,响应式编程在未来一定会成为*受欢迎的编程思想实践之一。RxJava作为响应式编程的Java语言实现,在国内却少有中文资料,而本书的出现正恰逢其时。所以这份也是国内首本关于Java编程方法论的书籍
本书的特点是什么?
本书包含的主要内容?
内容简介:
本书对RxJava 2的源码进行了深入解读,让读者可以从设计到实现细节上全面了解它,从而达到不仅会用而且可以进行RxJava 2源码库组件级别的拓展的程度。本书的目的不仅是介绍RxJava 2,而且更希望通过一个成熟、优秀的代码库来向读者展示阅读源码的思路及编程方面的技巧,其中包含了并发编程的实战技巧、数据结构的设计方法、设计模式的使用方法、函数式编程的各种技巧等,希望读者可以深入思考并获得属于自己的一套编程方法论。这也是“Java编程方法论系列丛书”的初衷,授之以鱼不如授之以渔。
目录内容
第1章响应式编程总览(Reactive Programming)
第2章︰在RxJava中创建Observable
第3章RxJava 2中的操作.
第4章对RxJava 2的设计探索
第5章Observable实战.
第6章RxJava 2中的多线程操作
第7章Flowable 与背压
第8章Flowable实战
需要获取这份文档的小伙伴可以直接转发+关注后添加下方图中VX即可获取
并发
可以这么说,并发很好地利用了CPU时间片的特性,也就是操作系统在当前时间片内选择并运行一个任务,接着在下一个时间片内选择并运行另一个任务,并把前一个任务设置成等待状态。
其实这里想表达的是,并发并不意味着并行。具体介绍几种情况,分别如下。
- 有时候多线程执行会提高应用程序的性能,而有时候反而会降低应用程序的性能。这在JDK中Stream API的使用上体现得很明显。如果任务量很小,而我们又使用了并行流,反而降低了性能。
- 我们在多线程编程中可能会同时开启或者关闭多个线程,这会产生大量的性能开销,也降低了程序性能。
- 当我们的线程同时都处于等待I/O的过程中时,并发可能会阻塞CPU资源,其造成的后果不仅是用户等待结果,而且会浪费CPU的计算资源。
- 如果几个线程共享了一个数据,情况就变得有些复杂了,我们需要考虑数据在各个线程中状态的一致性。为了达到这个目的,我们很可能会使用Synchronized或者lock。
响应式编程所涉及的设计模式
在第1章中介绍过这方面的内容,响应式编程将观察者( Observer )和迭代器( Iterator )通过函数式编程结合在一起。
使用filter进行条件过滤
依上所述,我们平时做得最多的操作莫过于转换和过滤了,所以以此来进行核心讲解。首先说明一下过滤操作filter,这里设定一个predicate条件,如果元素事件通过就进入下一环节,没通过便被抛弃,下面来看看Demo:
再这里就不给大家做过多的展示了,需要获取的小伙伴可以直接转发+关注后扫码添加下方VX即可获取