美文网首页
异步和阻塞操作符

异步和阻塞操作符

作者: CyrusChan | 来源:发表于2018-09-28 17:14 被阅读29次

异步操作符

如下操作符 是部分有明显区别 的 rxjava-async 模块 。他们被用于转换同步函数到Observable中去。

  • start( )— 创建一个发射函数返回值的Observable
  • toAsync( ) or asyncAction( ) or asyncFunc( ) —转换一个function 或者Action到一个执行函数且发射它的返回值的Observable.
  • startFuture( ) —转换一个返回Future的函数到一个发射这个Future的返回值的Observable.
  • deferFuture( )— 转换一个返回Observable的Furture到一个Observable,但是不要尝试获取Future返回的Observable直到一个Subscriber订阅它
  • forEachFuture( )— 传入Subscriber函数到一个Observable但是也让它的行为像一个阻塞到它完成的Future
  • fromAction( )— 将一个Action转换成一个调用action且当有Subscriver订阅时发射它的结果的Observable
  • fromCallable( )— 将一个Callable转换成调用callable且发射它的结果或者异常的Observable。
  • fromRunnable( )— 将一个Runnable转换成Observable,这个Observable执行runable且发射它的结果当有订阅者订阅的时候
  • runAsync( ) —返回一个 StoppableObservable ,这个StoppableObservable 发射多个 action 当被一个特定的scheduler的action生成的时候。

Blocking Observable Operators

这章节解释 BlockingObservable的子类。一个阻塞的Observable 通过在被该Observable发射的item上 提供一系列操作符 来 继承 普通的Observable类 。

为了把一个Observable转换成一个BlockingObservable, 可以使用Observable.toBlocking()函数或者BlockingObservable.from( )函数。

  • forEach( )— 对每个被Observable发射的item执行一个函数,且阻塞到Observable完成。
  • first( ) —阻塞到Observable发射一个item,接着返回被Observable发射的第一个item。
  • firstOrDefault( )— 阻塞直到Observable发射一个item或者完成,接着返回第一个被Observable发射的item 或者一个默认的Item,如果Observable没有发射item。
  • last( ) —阻塞直到Observable完成,接着返回最后一个被Observable发射的item
  • lastOrDefault( )— 阻塞直到Observable完成,接着返回最后一个被Observable发射的item,或者返回默认的item如果Observable没有发射最后一个item
  • mostRecent( )— 返回一个总是返回最近被Observable发射的item的迭代器
  • next( )— 返回一个Iterable,这个Iterable阻塞直到Observable发射另一个item,接着返回这个item.
  • latest( )— 返回一个Iterable,这个Iterable阻塞直到 除非Observable发射一个没有被迭代器返回过的item,接着返回这个item.
  • single( )— 如果Observable完成了在发射单一item之后,返回这个item,否则抛出异常。
  • singleOrDefault( )— 如果Obseravble完成了在发射单一item之后,返回这个item,否则返回一个默认的item。
  • toFuture( )— 把一个Observable转换成一个Furture
  • toIterable( )— 把Observable发射的序列 转换成Iterable
  • getIterator( ) —把Observable发射的序列 转换成 Iterator

这篇文档带有一个修正过的“marble图表”的解释。如下是”marble图表”如何表示阻塞的Observable

image.png

see also:

附录:相似的阻塞和非阻塞操作符

image.png

相关文章

  • 异步和阻塞操作符

    异步操作符 如下操作符 是部分有明显区别 的 rxjava-async 模块 。他们被用于转换同步函数到Obser...

  • UNIX 的5种IO模型介绍

    IO模型同步、异步、阻塞、非阻塞socket阻塞与非阻塞,同步与异步 同步和异步 同步/异步主要针对C端-同步就像...

  • 异步化介绍

    1.异步化介绍 1.1 同步和异步,阻塞和非阻塞 同步和异步,阻塞和非阻塞, 这个几个词已经是老生常谈,但是常常还...

  • 高并发的“大杀器”:异步化、并行化

    高并发的大杀器:异步化 同步和异步,阻塞和非阻塞 同步和异步,阻塞和非阻塞,这几个词已经是老生常谈,但是还是有很多...

  • 高并发的“大杀器”:异步化、并行化

    高并发的大杀器:异步化 同步和异步,阻塞和非阻塞 同步和异步,阻塞和非阻塞,这几个词已经是老生常谈,但是还是有很多...

  • 异步化,高并发大杀器

    聊聊如何让项目异步化的一些事。 1.同步和异步,阻塞和非阻塞 同步和异步,阻塞和非阻塞, 这个几个词已经是老生常谈...

  • 并发编程基础知识三 异步,非阻塞和 IO 复用

    参考通俗讲解 异步,非阻塞和 IO 复用 一、异步,非阻塞 为了更加形象的说明同步异步、阻塞非阻塞,我们以小明去买...

  • Java IO

    Before IO 分为:同步、异步阻塞、非阻塞 同步和异步是目的,阻塞和非阻塞是实现方式。 一个IO操作其实分成...

  • 谈论:同步异步阻塞非阻塞.md

    同步/异步:关注的方式(是否主动) 阻塞/非阻塞: 同步阻塞BIO: 同步非阻塞NIO: 异步非阻塞: 异步阻塞:

  • IO模型

    同步,异步,阻塞和非阻塞的概念与区别 同步和异步从消息通知机制角度来说的。 两个任务 同步一直等,异步不等 阻塞和...

网友评论

      本文标题:异步和阻塞操作符

      本文链接:https://www.haomeiwen.com/subject/zrjpoftx.html