Java 的纤程库
https://docs.paralleluniverse.co/quasar/
loom proposal translate
Project Loom的用户模式线程或协程的性能是否一定很好? - Dukesletter
Loom - Fibers, Continuations and Tail-Calls for the JVM
Project Loom Wiki
Project Loom: Fibers and Continuations for the Java Virtual Machine
Project Loom: Java虚拟机的纤程和计算续体
Project Loom Early-Access Builds
Project Loom:Reactive模型和协程进行时(翻译)
openjdk/loom
从 Quasar 项目、Alibaba JDK 的协程特性,到 Kotlin Coroutine 和 OpenJDK 的 Project Loom 来看 ,说明 Java 社区已经越来越多地认识到目前 Java 的线程模型越来越难以满足整个行业对高并发应用开发的需求。
为了解决异步编程过程中出现的种种难题,人们提出了各种各样方法来规避这些问题,这些方法称为反应式编程(Reactive Programming),就像面向对象编程,函数式编程一样,反应式编程也是另一种编程范式。
RxJava是ReactiveX项目中的Java实现。ReactiveX项目实现了很多语言,比如JavaScript,.NET(C#),Scala,Clojure,C ++,Ruby,Python,PHP,Swift等。
RxJava早于Reactive Streams规范。虽然RxJava 2.0+确实实现了Reactive Streams API规范,单使用的术语略有不同。
ReactiveX 扩展了 Observer pattern 模式;
ReactiveX is a library for composing asynchronous and event-based programs by using observable sequences.
Observable
Operators
Single
Subject
Scheduler
https://github.com/reactive-streams/reactive-streams-jvm/
https://github.com/reactive-streams/reactive-streams-io/
2013年底Netflix,Pivotal和Lightbend中的工程师们,启动了Reactive Streams项目,希望为异步流(包含背压)处理提供标准,它包括针对运行时环境(JVM和JavaScript)以及网络协议的工作。
对于Java程序员,Reactive Streams是一个API。Reactive Streams为我们提供了Java中的Reactive Programming的通用API。
Java8中的Stream和Reactive Streams
它们都使用了流式处理的思想,围绕数据流处理数据,即完成了从命令式到声明式的转换,使数据处理更方便。
不同的地方在于,Java8中的Stream是同步的、阻塞的,Reactive Streams是异步的、非阻塞的。
当使用Java1.9时, Reactive Streams已成为官方Java 9 API的一部分,Java9中Flow类下的内容与Reactive Streams完全一致。
https://github.com/reactor/reactive-streams-commons
A joint research effort for building highly optimized Reactive-Streams compliant operators. Current implementors include RxJava2 and Reactor.
Reactive Streams规范的流行实现
Project Reactor是一个运行在JVM上的反应式编程基础库,以“背压”的形式管理数据处理,提供了可组合的异步序列APIFlux和Mono。同时,它也实现了Reactive Streams 规范。
Project Reactor主要是由Pivotal公司开发和维护的,Spring框架也是该公司在维护,而且Spring Framework 5中默认使用Reactor作为反应式编程的实现,由此虽然Reactor不是Spring的子项目,也有人称Reactor为Spring Reactor。
Project Reactor介绍
Project Reactor 深度解析 - 1. 响应式编程介绍,实现以及现有问题
Project Reactor 深度解析 - 2. 响应式编程调试,FLow的概念设计以及实现