Rx (Reactive Extensions)介紹

banq發表於2013-10-24

Reactive Extensions (Rx) 原來是由微軟提出的一個綜合了非同步和基於事件驅動程式設計的庫包,使用可觀察序列和LINQ-style查詢操作。

使用Rx, 開發者可以用Observables來表達非同步資料流,使用LinQ操作查詢非同步資料流,使用Schedulers引數化非同步資料流中併發。

Rx = Observables + LINQ + Schedulers.

Rx最顯著的特性是使用可觀察集合(Observable Collection)來達到整合非同步(composing asynchronous)和基於事件(event-based)的程式設計的效果。

使用Rx, 對於無論來自哪裡的多少非同步資料流,比如來自股票,Twitter的帖子,或計算機事件,或Web服務的請求等等,只要使用介面 IObserver<T>來訂閱這些事件流,然後使用介面 IObservable<T> 在事件發生時提醒通知這些訂閱者。

因為可觀察的序列是資料流,你能使用標準的LINQ來查詢它們,這是通過Observable的擴充套件方法. 這樣你能過濾 聚合 組合分析這些事件。

Rx實現由如下專案:

Rx.NET:微軟自己的Rx實現。

RxJS: javascript擴充套件

RxCpp: C 和 C++.擴充套件

Rx.rb: ruby

RxPy: Python 3 (Rx.Py)

RxJava:是Netflix推出的一個基於JVM的Microsoft Reactive Extensions 擴充套件,提供Java, Scala, Clojure, 和 Groovy語言實現。

Rx (Reactive Extensions) - Home

[該貼被banq於2013-10-24 11:33修改過]