An open API service indexing awesome lists of open source software.

https://github.com/lianglliu/rxjava

RsJava Demo
https://github.com/lianglliu/rxjava

rxjava

Last synced: 9 months ago
JSON representation

RsJava Demo

Awesome Lists containing this project

README

          

# RxJava 学习项目

包含**自定义RxJava实现**和**官方RxJava示例**的学习项目,通过源码分析和实际应用深入理解响应式编程。

## 🚀 快速开始

```bash
# 编译项目
./gradlew build

# 运行主程序
./gradlew run
```

运行后选择对应的数字即可体验不同的示例:

```
📚 RxJava学习内容:

=== 🎯 官方RxJava 3.1.11 示例 ===
1. 🎯 基础概念示例
2. ⚡ 创建操作符示例
3. 🔄 转换操作符示例
4. 🔍 过滤操作符示例
5. 🤝 组合操作符示例
6. 🧵 线程调度示例
7. 🛡️ 错误处理示例

=== 🔧 自定义RxJava实现 ===
8. 🏗️ 自定义实现演示

0. 🚪 退出程序
```

## 📖 学习内容

### 🏗️ 自定义RxJava实现

通过自定义实现源码理解RxJava工作原理:

- **Observable核心设计**: 响应式流的核心抽象
- **操作符实现**: Create、Map、FlatMap等操作符的内部实现
- **线程调度**: MainScheduler、IOScheduler、ComputationScheduler的设计
- **链式调用**: 操作符链式调用的实现机制

### 🎯 操作符示例

实际应用场景的操作符使用:

- **创建操作符**: create、just、fromArray、range等
- **转换操作符**: map、flatMap、scan等
- **过滤操作符**: filter、distinct、take、skip等
- **组合操作符**: merge、zip、concat等
- **工具操作符**: delay、timeout、retry等

### 🧵 线程调度

线程切换和调度器使用:

- `subscribeOn()` vs `observeOn()` 的区别
- `Schedulers.io()` - IO密集型操作
- `Schedulers.computation()` - CPU密集型操作
- 多级线程切换的实现

---

**Happy Learning with RxJava! 🚀**