在之前的几篇博客中,我编写了一篇有关Rxjava学习笔记的,还有一个是RxJava使用示例(一): 实现Rxbus代替eventbus(这篇博文其实还不算完善,因为没有对被观察者发出的时间进行一个筛选,一次发送所有订阅者都会收到,这样不太好,可以再新加一个筛选器,等以后有空或者是遇到的时候再来改一改,现在不急)。之前在写那边Rxjava学习笔记的时候,就突出了一点是只涉及使用,不涉及原理,现在就对
线程切换前面的文章都是写的demo代码,本篇文章可以实战使用RxJava的方式加载网络图片。RxJava可以方便的设置上游和下游的执行线程,从而达到异步处理的作用。如何切换线程RxJava默认执行在主线程。如果需要切换上游执行线程,使用subscribeOn操作符。如果需要切换下游执行线程,使用observeOn操作符。/**
* todo 异步线程区域
* Scheduler
转载
2023-07-26 05:32:55
126阅读
Rxjava由于其基于事件流的链式调用、逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎。因此在学习过程中全面的了解了下RxJava的转换操作符。map() flatMap() concatMap() flatMapIterable() switchMap() buffer() scan() groupby() window() map() 原理图  
闲谈RxJavaRxJava:"a library for composing asynchronous and event-based programs using observable sequences for the Java VM"(一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库)异步。它其实就是一个实现异步操作的库,基于观察者模式,而且是链式调用的。RxJa
RxJava是一个异步框架,使用RxJava可以使代码逻辑更加清晰,避免过多的嵌套调用导致代码可读性变差。在实际项目中,由于主线程的绘制机制,我们经常会使用到线程的切换,将耗时的操作放在工作线程,将结果使用Handler返回给主线程处理。而使用RxJava我们可以很方便的实现这一切操作。首先我们先看一个例子:Observable.create<Int> {
转载
2023-08-17 15:35:17
195阅读
一个是运行在子线程 一个运行在主线程 两个方法封装了一下 ~~~package com.example.liuan.huanxin.utils;import android.os.Handler;import android.os.Looper;import java.util.concurrent.Executor;import java.util.concurrent.Exec
原创
2023-03-09 19:59:57
66阅读
切换线程在上游和下游之间增加切换线程的操作,如果手写map操作符明白的话, 这里就很简单。使上游执行在子线程的ObservableOnSubscribe的子类// 上游处理 异步线程的 Observable的子类 [给所有上游 切换异步线程]
public class ObservableOnIO<T> implements ObservableOnSubscribe<T
转载
2023-08-05 13:33:34
82阅读
前言经过前几篇的介绍,对RxJava对模式有了一定的理解:由Observable发起事件,经过中间的处理后由Observer消费。(对RxJava还不了解的可以出门左拐) 之前的代码中,事件的发起和消费都是在同一个线程中执行,也就是说之前我们使用的RxJava是同步的~~~ 观察者模式本身的目的不就是后台处理,将处理结果回调给前台?这同步的是要哪样?所以,这篇为大家介绍RxJava的重要的概念——
# Android RxJava切换线程工具类
在Android开发中,线程管理是一个重要的课题。通过使用RxJava,我们可以更加方便地处理异步任务和线程切换。如果你还不太熟悉RxJava的使用,本文将为你介绍一个简单的线程切换工具类,帮助你在Android项目中更有效地使用RxJava。
## 什么是RxJava?
RxJava是一个基于观察者模式的响应式编程库,它提供了一种可组合的方式
参考资料:
基本功:线程上下文切换
进程/线程上下文切换会用掉你多少CPU? https://zhuanlan.zhihu.com/p/797720891. 名词解释:时间片
多任务系统往往需要同时执行多道作业。作业数往往大于机器的CPU数,然而一颗CPU同时只能执行一项任务。利用了时间片轮转的方式,让用户感觉任务正在同时进行
时间片是CPU分配给各个任务(线程)的时间。线程上下文
指某一时间点
转载
2023-08-01 18:19:18
65阅读
## RxJava 切换线程
在使用 RxJava 进行异步编程的过程中,我们经常会遇到需要切换线程的情况。RxJava 提供了一系列的操作符来帮助我们在不同的线程之间切换,以便我们能够更好地管理和控制异步代码的执行。
### 为什么需要切换线程
在 Android 开发中,我们经常需要在主线程进行 UI 更新操作,而将耗时的网络请求或者数据库查询等操作放在后台线程执行,以避免阻塞主线程导致
目录RxJava线程切换简单demo使用从observeOn操作符开始分析总结题外话题,QueueDisposable RxJava线程切换我们知道使用rxJava的最重要使用场景就是获取网络请求数据或者是数据库数据等等异步耗时操作的,所以对rxJava线程切换的掌握也十分重要,这一章我们来讲一讲rxJava的线程切换是怎么实现的。简单demo使用Log.e(TAG,"主线程ID:"+Threa
转载
2023-08-08 16:26:04
110阅读
RxJava称为响应式编程 RxJava也称为异步事件流编程 线程的切换很重要一.subscribeOn 给上面代码分配线程.subscribeOn(
Schedulers.io() // 耗时读取的异步
)1.先分析Schedulers.io() 和它的hook@NonNull
pub
转载
2023-09-29 10:00:07
78阅读
【谜之RxJava (二) —— Magic Lift】Rxjava -- 一个异步库RxJava最迷人的是什么?答案就是把异步序列写到一个工作流里!和javascript的Promise/A如出一辙。OK,在java中做异步的事情在我们传统理解过来可不方便,而且,如果要让异步按照我们的工作流来,就更困难了。但是在RxJava中,我们只要调用调用subscribOn()和observeOn()就能
转载
2023-06-25 20:34:37
139阅读
基本代码来看一下基本代码:Observable.create((ObservableOnSubscribe<Integer>) e -> {
e.onNext(1);
e.onNext(2);
e.onComplete();
}).subscribeOn(Schedulers.io())
原创
2023-08-04 15:39:12
131阅读
在不指定线程的情况下,RxJava遵循的是线程不变的原则,即:在哪个线程调用subscribe(),就在哪个线程生产事件;在哪个线程生产事件,就在哪个线程消费事件。如果需要切换线程,就需要用到Scheduler(调度器)。
转载
2023-07-27 09:45:49
86阅读
1. from作用:from操作符是把其他类型的对象和数据类型转化成Observable, 转换集合为一个每次发射集合中一个元素的 Observable 对象。 场景: 遍历集合public static void from(){
Observable observable = Observable.from(new String[] {"C++", "Java", "C#", "Py
转载
2023-07-25 21:13:26
38阅读
线程控制 —— Scheduler由于 Rx 目标是用在异步系统上并且 Rx 支持多线程处理,所以很多 Rx 开发者认为默认情况下 Rx 就是多线程的。 其实实际情况不是这样的,Rx 默认是单线程的。在不指定线程的情况下, RxJava 遵循的是线程不变的原则,即:在哪个线程调用subscribe(),就在哪个线程生产事件;在哪个线程生产事件,就在哪个线程消费事件。如果需要切换线程,就需要用到 S
转载
2023-08-10 13:29:05
80阅读
在RxJava的使用过程中,通常会用subscribeOn来指定可观察者Observable的线程,用observerOn来指定观察者Observer的线程。本文将分析RxJava2.x的线程切换原理先来看一个例子Observable.create(new ObservableOnSubscribe<Integer>() {
@Override
转载
2023-06-21 21:02:41
194阅读
线程切换操作符, 是RxJava不可获取的操作符。1.subscribeOn用于给上游配置异步线程,即使给上游分配多次,只会在第一次切换,后面的不切换了。2. observeOn用于给下游配置异步线程,给下游分配多次,每次都会切换。以最后一次为准。3. 线程类型Schedulers.io(): 代表io流操作,网络操作,文件流等耗时操作。 里面其实就是一个线程池。Schedulers.n
转载
2023-08-22 16:29:01
61阅读