首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

获取任务的执行结果

但是,我们始终没有去深入的了解下,异步任务框架对于任务执行的进度是如何监控的,任务执行的结果该如何获取。...outcome 是任务执行结束的返回值,runner 是正在执行当前任务的线程,waiters 是一个简单的单链表,维护的是所有在任务执行结束之前尝试调用 get 方法获取执行结果的线程集合。...而我们可以直接调用 get 方法去获取任务执行的结果,不过 get 方法是阻塞式的,一旦任务还未执行结束,当前线程将丢失 CPU 进而被阻塞到 Future 的内部队列上。...到这里,相信你也一定看出来了,FutureTask 实现的 Future 的弊端在 get 方法,这个方法非异步,如果没有成功获取到任务的执行结果就将直接阻塞当前线程,以等待任务的执行完成。...take 方法直接获取已完成的任务返回结果,无需阻塞。

1.5K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Carson带你学Android:图文详解RxJava背压策略

    4.4 Flowable的基础使用 Flowable的基础使用非常类似于 Observable 具体如下 /** * 步骤1:创建被观察者 = Flowable */ Flowable...背压策略的使用 在本节中,我将结合 背压策略的原理 & Flowable的使用,为大家介绍在RxJava 2.0 中该如何使用Flowable来实现背压策略功能,即背压策略的使用 Flowable与Observable.../ 作用:返回当前线程中request(a)中的a值 // 该request(a)则是措施1中讲解的方法,作用 = 设置 ....// 仅贴出关键代码 } 每个线程中的requested...、被观察者仍然继续发送下1个事件时,该如何处理的策略方式 缓存区大小存满、溢出 = 发送事件速度 > 接收事件速度 的结果 = 发送 & 接收事件不匹配的结果 5.3.2 背压模式类型 下面我将对每种模式逐一说明...其余方法的作用类似于上面的说背压模式参数,此处不作过多描述。

    1.2K10

    Android RxJava:一文带你全面了解 背压策略

    Flowable 特点 Flowable的特点 具体如下 ?...背压策略的使用 在本节中,我将结合 背压策略的原理 & Flowable的使用,为大家介绍在RxJava 2.0 中该如何使用Flowable来实现背压策略功能,即背压策略的使用 Flowable与Observable...:返回当前线程中request(a)中的a值 // 该request(a)则是措施1中讲解的方法,作用 = 设置 ....// 仅贴出关键代码 } 每个线程中的requested(...面向对象:针对缓存区 作用:当缓存区大小存满、被观察者仍然继续发送下1个事件时,该如何处理的策略方式 缓存区大小存满、溢出 = 发送事件速度 > 接收事件速度 的结果 = 发送 & 接收事件不匹配的结果...其余方法的作用类似于上面的说背压模式参数,此处不作过多描述。 背压策略模式小结 ?

    2K20

    Rx Java 异步编程框架

    但是在ReactiveX中,很多指令可能是并行执行的,之后他们的执行结果才会被观察者捕获,顺序是不确定的。为达到这个目的,你定义一种获取和变换数据的机制,而不是调用一个方法。...但是,RxJava 的反应类型是不可变的;每个方法调用都返回一个带有添加行为的新 Flowable。...根据上面的代码的结果输出中可以看到,当我们调用 subscription.request(n) 方法的时候,会等onSubscribe()中后面的代码执行完成后,才会立刻执行到onNext方法。...它对每个观察者都这样做,因此尽管每个订阅者都以为自己订阅的是同一个Observable,事实上每个订阅者获取的是它们自己的单独的数据序列。...,flatMap 返回的是包含结果集的 Observable; 执行顺序不同:map 被订阅时每传递一个事件执行一次 onNext 方法,flatmap 多用于多对多,一对多,再被转化为多个时,一般利用

    3.1K20

    RxJava

    "); } }); } 输出结果如下 Observable调用subscribe方法时会触发这个onSubscribe方法 可以在这里触发消费者的方法 onNext方法被调用 onComplete...} 接下来调用FlowableOnSubscribe的subscrib方法,FlowableOnSubscribe中的subscribe即匿名内部类中的subscribe方法会, 先调用调用BaseEmitter...并返回 .subscribe => 以原生的Subscriber作为参数调用Flowable的subscribe方法,然后再对原生的Subscriber做一层包装作为参数,调用FlowableMap...的subscribeActual, 然后再调用FlowableCreate的subscribe方法(即lowable的subscribe方法),然后再以上一层包装的Subscriber作为参数调用FlowableCreate...以BaseEmitter为参数调用FlowableOnSubscribe的subscribe 方法,即调用BaseEmitter的相关方法(onNext......)

    1.2K30

    RxJava2.0你不知道的事(三)

    (都有一个共同的方法subscrib()),但是参数不一样),正是各自接口的不同,决定了他们功能不同,各自独立(特别是Observable和Flowable),同时保证了他们各自的拓展或者配套的操作符不会相互影响...在测试的时候,快速发送了100000个整形数据,下游延迟接收,结果被观察者的数据全部发送出去了,内存确实明显增加了,遗憾的是没有OOM。...Flowable/Subscriber Flowable.range(0, 10) .subscribe(new Subscriber() { Subscription...根据上面的代码的结果输出中可以看到,当我们调用subscription.request(n)方法的时候,不等onSubscribe()中后面的代码执行,就会立刻执行onNext方法,因此,如果你在onNext...方法中使用到需要初始化的类时,应当尽量在subscription.request(n)这个方法调用之前做好初始化的工作; 当然,这也不是绝对的,我在测试的时候发现,通过create()自定义Flowable

    66020

    Android Rxjava :最简单&全面背压讲解 (Flowable)

    上图可以很清楚看出二者的区别,其实Flowable 出来以上的区别之外,它其他所有使用与Observable完全一样。...Flowable 的create例子 public void flowable(){ Flowable.create(new FlowableOnSubscribe(...BUFFER_SIZE = Math.max(1, Integer.getInteger("rx2.buffer-size", 128)); } ..... } 通过上面的例子,我们可以看到create方法中的包含了一个...4.5 requested requested 与 request不是同一的函数,但它们都是属于FlowableEmitter类里的方法,那么requested()是有什么作用呢,看看以下例子: Flowable.create...从图中我们可以发现,requested打印的结果就是 剩余可接收的数量 ,它的作用就是可以检测剩余可接收的事件数量。 5.总结 到此,Flowable讲解完毕。

    1.6K20

    Android 中 RxJava 的使用

    RxJava 规定,当不会再有新的 onNext() 发出时,需要触发 onCompleted() 方法作为标志。 onError(): 事件队列异常。...下面就说一下各块内容 发布者 对比 Observable/Flowable: Observable不支持背压(backpressure) Flowable是Rxjava2新增加的支持背压(backpressure...如果上游发送数据速度远大于下游接收数据的速度 用Observable就会内存溢出 Flowable则会抛弃掉处理不了的数据来防止溢出 但是不能就都用Flowable 因为Observable...Flowable .create(new FlowableOnSubscribe() { @Override public void subscribe...(observer); 注意上面方法的顺序 看上去是发布者订阅了订阅者,之所以这样是因为链式代码的优雅 线程(Scheduler) 常用的方式是分线程中处理数据,主线程中使用数据生成页面 Observable

    2.2K30

    关于RxJava2.0你不知道的事(一)

    这就像小学做的那道数学题:一个水池,有一个进水管和一个出水管。如果进水管水流更大,过一段时间水池就会满(溢出)。这就是没有Flow Control导致的结果。...的问题,用Observable就足以满足需求; 获取数据操作是同步的,但你的平台不支持Java流或者相关特性。...而新的接口带来的新的调用方式与旧的也不太一样, subscribe 后不再会有 Subscription 也就是如今的 Disposable,为了保持向后的兼容, Flowable 提供了 subscribeWith...因为Reactive-Streams的基础接口org.reactivestreams.Publisher 定义subscribe()为无返回值,Flowable.subscribe(Subscriber...其他的基础类型也遵循这种规律。 在2.x中其他的subscribe的重载方法返回Disposable。 原始的Subscription容器类型已经被重命名和修改。

    1.5K20
    领券