当前位置: 首页 > news >正文

银铃建设通官方网站安卓app开发模板

银铃建设通官方网站,安卓app开发模板,巨好用企业网站源码,h5页面的制作工具有哪些冷热复位我自己对“热和冷可观测”的理解还很不稳定#xff0c;但这是我到目前为止所了解的#xff01; 冷观测 考虑一个返回rx-java Observable的API#xff1a; import obs.Util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import rx.Observable; impo… 冷热复位 我自己对“热和冷可观测”的理解还很不稳定但这是我到目前为止所了解的 冷观测 考虑一个返回rx-java Observable的API import obs.Util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import rx.Observable; import rx.schedulers.Schedulers;public class Service1 {private static final Logger logger LoggerFactory.getLogger(Service1.class);public ObservableString operation() {return Observable.Stringcreate(s - {logger.info(Start: Executing slow task in Service 1);Util.delay(1000);s.onNext(data 1);logger.info(End: Executing slow task in Service 1);s.onCompleted();}).subscribeOn(Schedulers.computation());} } 现在首先要注意的是典型的Observable在订阅之前不会做任何事情 所以基本上如果我要这样做 ObservableString op1 service1.operation(); 除非通过以下方式在Observable上进行订阅否则不会打印或返回任何内容 ObservableString op1 service1.operation();CountDownLatch latch new CountDownLatch(1);op1.subscribe(s - logger.info(From Subscriber 1: {}, s),e - logger.error(e.getMessage(), e),() - latch.countDown());latch.await(); 因此现在如果此Observable上有多个订阅会发生什么情况 ObservableString op1 service1.operation();CountDownLatch latch new CountDownLatch(3);op1.subscribe(s - logger.info(From Subscriber 1: {}, s),e - logger.error(e.getMessage(), e),() - latch.countDown());op1.subscribe(s - logger.info(From Subscriber 2: {}, s),e - logger.error(e.getMessage(), e),() - latch.countDown());op1.subscribe(s - logger.info(From Subscriber 3: {}, s),e - logger.error(e.getMessage(), e),() - latch.countDown());latch.await(); 有了冷的可观察到的代码代码将再次被调用并再次发出项目这在我的机器上得到了 06:04:07.206 [RxComputationThreadPool-2] INFO o.b.Service1 - Start: Executing slow task in Service 1 06:04:07.208 [RxComputationThreadPool-3] INFO o.b.Service1 - Start: Executing slow task in Service 1 06:04:08.211 [RxComputationThreadPool-2] INFO o.b.BasicObservablesTest - From Subscriber 2: data 1 06:04:08.211 [RxComputationThreadPool-1] INFO o.b.BasicObservablesTest - From Subscriber 1: data 1 06:04:08.211 [RxComputationThreadPool-3] INFO o.b.BasicObservablesTest - From Subscriber 3: data 1 06:04:08.213 [RxComputationThreadPool-2] INFO o.b.Service1 - End: Executing slow task in Service 1 06:04:08.214 [RxComputationThreadPool-1] INFO o.b.Service1 - End: Executing slow task in Service 1 06:04:08.214 [RxComputationThreadPool-3] INFO o.b.Service1 - End: Executing slow task in Service 1热可观察–使用ConnectableObservable 另一方面Hot Observable确实不需要订阅即可开始发射项目。 一种实现Hot Observable的方法是使用ConnectableObservable 它是一个Observable它在调用connect方法之前不会发出项目但是一旦开始发出项目它的任何订阅者只能从订阅点获取项目。 因此再次回顾前面的示例但使用ConnectableObservable代替 ObservableString op1 service1.operation();ConnectableObservableString connectableObservable op1.publish();CountDownLatch latch new CountDownLatch(3);connectableObservable.subscribe(s - logger.info(From Subscriber 1: {}, s),e - logger.error(e.getMessage(), e),() - latch.countDown());connectableObservable.subscribe(s - logger.info(From Subscriber 2: {}, s),e - logger.error(e.getMessage(), e),() - latch.countDown());connectableObservable.subscribe(s - logger.info(From Subscriber 3: {}, s),e - logger.error(e.getMessage(), e),() - latch.countDown());connectableObservable.connect();latch.await(); 并打印以下内容 06:07:23.852 [RxComputationThreadPool-3] INFO o.b.Service1 - Start: Executing slow task in Service 1 06:07:24.860 [RxComputationThreadPool-3] INFO o.b.ConnectableObservablesTest - From Subscriber 1: data 1 06:07:24.862 [RxComputationThreadPool-3] INFO o.b.ConnectableObservablesTest - From Subscriber 2: data 1 06:07:24.862 [RxComputationThreadPool-3] INFO o.b.ConnectableObservablesTest - From Subscriber 3: data 1 06:07:24.862 [RxComputationThreadPool-3] INFO o.b.Service1 - End: Executing slow task in Service 1热点可观察–使用主题 将冷的Observable转换为高温的另一种方法是使用Subject 。 主题既表现为可观察者又表现为观察者有不同类型的主题具有不同的行为。 在这里我使用一个名为PublishSubject的Subject它具有Pub / Sub行为–这些项目被发送给所有在其上监听的订阅者。 因此随着PublishSubject的引入代码如下所示 ObservableString op1 service1.operation();PublishSubjectString publishSubject PublishSubject.create();op1.subscribe(publishSubject);CountDownLatch latch new CountDownLatch(3);publishSubject.subscribe(s - logger.info(From Subscriber 1: {}, s),e - logger.error(e.getMessage(), e),() - latch.countDown());publishSubject.subscribe(s - logger.info(From Subscriber 2: {}, s),e - logger.error(e.getMessage(), e),() - latch.countDown());publishSubject.subscribe(s - logger.info(From Subscriber 3: {}, s),e - logger.error(e.getMessage(), e),() - latch.countDown());latch.await(); 了解如何将PublishSubject作为Observable的订阅者引入而其他订阅者则如何订阅PublishSubject。 输出将类似于ConnectableObservable的输出。 从本质上来说这就是我对“热可观察”的理解程度。 因此总而言之Cold和Hot Observable之间的区别在于订户何时获得发射的项目以及何时发射项目–使用Cold Observable它们在订阅并通常获得所有发射的项目时发射一个Hot Observable项目将在没有订阅服务器的情况下发出而订阅者通常会在订阅点之后获得项目。 参考 http://www.introtorx.com/content/v1.0.10621.0/14_HotAndColdObservables.html Rx-java上的优秀Javadoc – http://reactivex.io/RxJava/javadoc/index.html 翻译自: https://www.javacodegeeks.com/2015/03/hot-and-cold-rx-java-observable.html冷热复位
http://www.pierceye.com/news/949928/

相关文章:

  • 南宁网络建站直接用源码做网站盗版吗
  • 哪些网站可以做驾考试题旅游网站排名排行榜
  • 网站宣传专利被罚账户竞价托管费用
  • 芙蓉区网站建设qq建设网站首页
  • 做音乐网站怎么放音乐常州网红打卡景点
  • 网站做的题不小心关闭了如何成为室内设计师
  • 营销型网站建设公司地址外贸网站seo优化
  • 建设网站是什么科目wordpress对接易支付宝
  • wordpress英文意思能做SEO优化的网站建设
  • 海沧建设网站多少一站式服务英文
  • wordpress网站需要多大空间建设营销型网站
  • id97网站怎么做的项目营销策划方案
  • 站群网站怎么做缓存
  • 网站(网店)建设方案范文北京网站搭建服务
  • 建设银行网站怎么设置转账额度百度竞价培训班
  • 八大员继续教育入口做优化网站注意什么
  • 网络空间服务商宁波seo网络推广推荐公众号
  • 网站登录注册做验证码的目地汕头网站建设浩森宇特
  • 做鼻翼整形整形的网站开原网站开发
  • 宿州专业网站建设学做app
  • 宁德商城网站开发设计个人网站在那建设
  • 培训网站建设情况淄博网站排名优化
  • 运营一个网站的成本网络营销第二板斧是什么
  • 企业建站报价手机网站开发开发
  • 足彩网站怎样做推广友情链接官网
  • 十大免费音乐网站网络营销策划推广公司有哪些
  • 免费开源代码网站上海企业建设网站
  • 万家灯火网站建设win7系统做网站服务器
  • 网站直播用php怎么做做家旅游的视频网站好
  • 平台网站建设方案查看自己电脑的网站开发语言