RxCpp 的核心是 Observable 和 Observer 模式,通过操作符编排异步数据流;例如 rxcpp::observable::just(1,2,3) 创建同步序列并用 subscribe 输出。

RxCpp 是 C++ 的响应式编程库,它让异步数据流的处理变得像操作容器一样直观:可组合、可订阅、可变换。入门关键不是学一堆新语法,而是理解“Observable(可观测序列)”和“Observer(观察者)”这两个核心角色,以及如何用操作符(如 map、filter、subscribe_on)编排事件流。
从一个最简 Observable 开始
不用线程、不接网络,先看数据怎么“发出来”:
- 用
rxcpp::observable<int>::just(1, 2, 3)</int>创建一个立即发出 1、2、3 的同步序列; - 用
.subscribe([](int v) { std::cout 接收并打印 —— 这就是最基础的 Observer; - 注意:
subscribe()调用后,数据立刻推送到 lambda,整个过程是同步阻塞的,没有后台线程。
让事件真正“异步”起来
响应式真正的价值在于解耦执行时机。RxCpp 提供调度器(Scheduler)控制在哪跑:
- 用
rxcpp::observe_on_event_loop()或rxcpp::synchronize_new_thread()获取调度器; - 链式调用
.observe_on(scheduler)把后续操作切到目标线程; - 例如:定时发数 ——
rxcpp::observable::interval(std::chrono::seconds(1))默认在事件循环中每秒发一个 long 值,配合take(5)可限制次数。
常用操作符组合数据流
就像 STL 算法操作 vector,RxCpp 操作符对 Observable 做声明式变换:
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~