|
7#
楼主 |
发表于 2019-1-18 11:01:55
|
只看该作者
咕泡学院 - Reactor Streams 并发编程之 Reactor
理解Reactive Streams 编程
了解Reactor基本使用
帮助理解 WebFlux(Spring Framework 5)
Reactive Streams规范
https://github.com/reactive-streams/reactive-streams-jvm
Reactive Streams框架 - Reactor
Java 1.4 NIO = Non-Blocking I/O
https://en.wikipedia.org/wiki/Reactor_pattern 同步
Proactor pattern 异步
https://projectreactor.io/docs
CPU Processor = 8
Tomcat/Netty Thread numbers=16
1 Processor = 2 Threads
1 Processor = N Threads,轮询执行/时间分片系统
如果是CPU密集型, Reactive都无济于事
1 Thread CPU 占满了,其它线程不得不等待
Reactive是一种观察者模式的扩展
Streams流式
观察者模式 责任链模式 迭代器模式 发布-订阅模式
A->B->C->D-E
List<Integer> values = Arrays.asList(1,2,3,4,5);
四种角色:
Publisher 发布者
Subscriber 订阅者
Subscription 订阅的控制器
Processor 发布者|订阅者
Reactive Streams的规范实现
Java 9 Flow API
RxJava: Reactive Extension Java
Reactor: Reactor Framework
Future 异步
Reactor API
Mono: 异步 0-1元素序列, Future<Optional<?>>
Flux: 异步 0-N元素序列, Future<Collection<?>>
Callback/Future代表
ListenableFuture
ListenableFutureCallback
Future不足:
1.不知道什么时候结束 ListenableFutureCallback 帮助增加成功的调用
2.Future之间没有相互管理的方式
Supplier 只出(返回)不进(参数)
consumer 只进不出
Function 又进又出
BiFunction 二元操作 func(a,b)
|
|