TouTiao开源项目 分析笔记5 1.深入理解RxJava1.1.基本上现在的APP都会有请求网络,然后处理回调的业务吧。  如果请求的数据很多,业务越来越复杂,怎么处理呢?  这里我用到了RxJava来帮我处理业务。  RxJava主要复杂事件的通知和订阅。这个挺起来没有什么概念。  其实说白了,RxJava就是优雅地处理函数回调。 1.2
转载 1月前
416阅读
目录1 多线程存在的性能问题2 使用线程池创建线程的好处3 线程池中各个参数的含义4 线程池的四种拒绝策略5 常见的线程池6 如何确定线程的数量7 线程池实现线程复用的原理—execute()方法 1 多线程存在的性能问题多线程虽然可以提高我们的并发量,提高硬件的使用率,但是也存在非常大的性能问题。主要有以下三点调度开销上下文切换:我们的线程数一般都是大于我们的CPU核心数的,所以操作系统就需要
Rxjava2实战--第四章 Rxjava的线程操作1 调度器(Scheduler)种类1.1 RxJava线程介绍默认情况下,1.2 SchedulerSheduler作用single使用定长为1的线程池(new ScheduledThread Pool(1)),重复利用这个线程newThread每次都启用线程,并 在新线程中执行操作computation使用固定的线程池(Fixed Sched
转载 2023-08-05 00:14:17
91阅读
RxJava 线程控制RxJava 可以切换调度线程,控制每个操作在哪个线程执行。RxJava 内置的 Scheduler如果我们不指定线程,默认是在调用 subscribe 方法的线程上进行回调的。如果想切换线程,就需要使用调度器(Scheduler)。RxJava 内置了如下 5 个 Scheduler。Schedulers.immediate:直接在当前线程运行,它是 timeout、tim
转载 2023-05-18 19:33:47
932阅读
# RXjava io:简介与使用示例 ## 什么是RXjava ioRXjava io 是一个在Java中实现响应式编程的库。它基于观察者模式和迭代器模式,通过异步和事件驱动的方式处理数据流。RXjava io 提供了一种优雅而强大的方式来处理异步操作和事件处理,使代码更易读、易维护和可扩展。 ## RXjava io 的核心概念 ### Observable (被观察者) Obs
原创 2023-07-20 18:54:30
78阅读
RxJava称为响应式编程 RxJava也称为异步事件流编程 线程的切换很重要一.subscribeOn 给上面代码分配线程.subscribeOn( Schedulers.io() // 耗时读取的异步 )1.先分析Schedulers.io() 和它的hook@NonNull pub
转载 2023-09-29 10:00:07
95阅读
1,from将一组数据,按顺序依次发射出去private void rxFromUse() { List<String> list = new ArrayList<>(); list.add("from1"); list.add("from2"); list.add("from3"); list
转载 2024-02-21 11:14:46
21阅读
一、概述  本节将分析RxJava2的线程切换模型。通过对线程切换源代码的分析到达对RxJava2线程切换彻底理解的目的。通过对本节的学习你会发现,RxJava2线程切换是如此的简单,仅仅是通过两个操作符就能完成从子线程到主线程,或者主线程到子线程,再或者从子线程到子线程的切换。对应的操作符为:observerOn:指定观察者运行的线程。subscribeOn:执行被观察者运行的线程。二、简单例子
转载 2023-08-14 10:58:52
198阅读
切换线程在上游和下游之间增加切换线程的操作,如果手写map操作符明白的话, 这里就很简单。使上游执行在子线程的ObservableOnSubscribe的子类// 上游处理 异步线程的 Observable的子类 [给所有上游 切换异步线程] public class ObservableOnIO<T> implements ObservableOnSubscribe<T
前言经过前几篇的介绍,对RxJava对模式有了一定的理解:由Observable发起事件,经过中间的处理后由Observer消费。(对RxJava还不了解的可以出门左拐) 之前的代码中,事件的发起和消费都是在同一个线程中执行,也就是说之前我们使用的RxJava是同步的~~~ 观察者模式本身的目的不就是后台处理,将处理结果回调给前台?这同步的是要哪样?所以,这篇为大家介绍RxJava的重要的概念——
转载 2024-06-25 07:17:10
46阅读
# 如何实现RxJava io现成 ## 简介 在这篇文章中,我将教你如何使用RxJava实现io现成。RxJava是一个强大的响应式编程库,它提供了丰富的操作符和线程调度器,使得异步编程变得更加简单和高效。 ## 流程图示 下面是实现RxJava io现成的流程图示: | 步骤 | 描述 | | --- | --- | | 步骤1 | 创建Observable对象 | | 步骤2 | 使用
原创 2023-07-21 07:42:52
97阅读
# 如何使用io.reactivex.rxjava3:rxjava ## 概述 在本文中,我将向您介绍如何使用 `io.reactivex.rxjava3:rxjava`。`rxjava` 是一个流行的响应式编程库,它提供了丰富的操作符和工具,用于简化异步操作和事件处理。以下是我们将要讨论的步骤概览: | 步骤 | 动作 | 代码示例 | |------|------|---------| |
原创 2023-07-20 16:51:41
402阅读
## RxJava 切换线程 在使用 RxJava 进行异步编程的过程中,我们经常会遇到需要切换线程的情况。RxJava 提供了一系列的操作符来帮助我们在不同的线程之间切换,以便我们能够更好地管理和控制异步代码的执行。 ### 为什么需要切换线程 在 Android 开发中,我们经常需要在主线程进行 UI 更新操作,而将耗时的网络请求或者数据库查询等操作放在后台线程执行,以避免阻塞主线程导致
原创 2024-01-31 11:58:02
120阅读
原文作者: [Dan Lew] 正文延迟Observable代码运行直到被订阅(Deferring Observable code until subscription in RxJava)我喜欢使用RxJava的defer()作为一种工具,以确保在订阅时(而不是创建时)运行Observable的代码。我已经写了一些关于延期的文章,但我想在这里更详细地讨论一下。 假设你有这个数据类: pu
# 在 Android 中使用 RXJava 切换线程 在 Android 开发中,特别是使用 RXJava 进行响应式编程时,线程的切换是一个非常重要的环节。今天,我们就来学习如何通过 RXJava 实现线程的切换。 ## 整体流程 在进行 RXJava 的线程切换时,我们需要遵循以下步骤: | 步骤 | 描述 | |-----
原创 2024-10-14 05:55:07
26阅读
目录RxJava线程切换简单demo使用从observeOn操作符开始分析总结题外话题,QueueDisposable RxJava线程切换我们知道使用rxJava的最重要使用场景就是获取网络请求数据或者是数据库数据等等异步耗时操作的,所以对rxJava线程切换的掌握也十分重要,这一章我们来讲一讲rxJava的线程切换是怎么实现的。简单demo使用Log.e(TAG,"主线程ID:"+Threa
【谜之RxJava (二) —— Magic Lift】Rxjava -- 一个异步库RxJava最迷人的是什么?答案就是把异步序列写到一个工作流里!和javascript的Promise/A如出一辙。OK,在java中做异步的事情在我们传统理解过来可不方便,而且,如果要让异步按照我们的工作流来,就更困难了。但是在RxJava中,我们只要调用调用subscribOn()和observeOn()就能
转载 2023-06-25 20:34:37
149阅读
参考资料: 基本功:线程上下文切换 进程/线程上下文切换会用掉你多少CPU? https://zhuanlan.zhihu.com/p/797720891. 名词解释:时间片 多任务系统往往需要同时执行多道作业。作业数往往大于机器的CPU数,然而一颗CPU同时只能执行一项任务。利用了时间片轮转的方式,让用户感觉任务正在同时进行 时间片是CPU分配给各个任务(线程)的时间。线程上下文 指某一时间点
在不指定线程的情况下,RxJava遵循的是线程不变的原则,即:在哪个线程调用subscribe(),就在哪个线程生产事件;在哪个线程生产事件,就在哪个线程消费事件。如果需要切换线程,就需要用到Scheduler(调度器)。
转载 2023-07-27 09:45:49
94阅读
线程控制 —— Scheduler由于 Rx 目标是用在异步系统上并且 Rx 支持多线程处理,所以很多 Rx 开发者认为默认情况下 Rx 就是多线程的。 其实实际情况不是这样的,Rx 默认是单线程的。在不指定线程的情况下, RxJava 遵循的是线程不变的原则,即:在哪个线程调用subscribe(),就在哪个线程生产事件;在哪个线程生产事件,就在哪个线程消费事件。如果需要切换线程,就需要用到 S
  • 1
  • 2
  • 3
  • 4
  • 5