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

代做课程设计的网站挖掘关键词工具

代做课程设计的网站,挖掘关键词工具,广西政府网站谁做的,公司简介英文翻译参考:教你轻松理解Rxjava之线程切换流程(observeOn与subscribeOn) observable.subscribeOn(Schedulers.newThread())//多次调用subscribeOn() 只有第一次的有效, 其余的会被忽略..observeOn(AndroidSchedulers.mainThread())//每调用一次observeOn() , 下游的线程就…

参考:教你轻松理解Rxjava之线程切换流程(observeOn与subscribeOn)

observable.subscribeOn(Schedulers.newThread())//多次调用subscribeOn() 只有第一次的有效, 其余的会被忽略..observeOn(AndroidSchedulers.mainThread())//每调用一次observeOn() , 下游的线程就会切换一次..subscribe(consumer);

订阅,向上走的一个过程
数据流,向下走的一个过程

1:当我们调用了subscribe的发起订阅
2:先向上走,我只需要关心subscribeOn和订阅的操作符
3:再向下走,我只需要关心observeOn和数据流的操作符

  • subscribeOn

指定的是Observable自身在哪个调度器上执行,而且跟调用的位置没有关系。

  • observeOn

指定一个观察者在哪个调度器上观察这个Observable,当每次调用了ObservableOn这个操作符时,之后都会在选择的调度器上进行观察,直到再次调用ObservableOn切换了调度器。

多次使用 subscribeOn

//subscribeOn : 切换订阅线程,只有第一次切换有效
Observable.just("source").map(new Function<String, String>() {@Overridepublic String apply(String s) {System.out.println("map1 thread========"+ Thread.currentThread().getName());return "map1:" + s;}}).subscribeOn(Schedulers.newThread())            //第一次切换.map(new Function<String, String>() {@Overridepublic String apply(String s) {System.out.println("map2 thread========"+ Thread.currentThread().getName());return "map2:" + s;}}).subscribeOn(Schedulers.io())                    //第二次切换.map(new Function<String, String>() {@Overridepublic String apply(String s) {System.out.println("map3 thread========"+ Thread.currentThread().getName());return "map3:" + s;}}).subscribeOn(Schedulers.computation())          //第三次切换.map(new Function<String, String>() {@Overridepublic String apply(String s) {System.out.println("map4 thread========"+ Thread.currentThread().getName());return "map4:" + s;}}).subscribeOn(Schedulers.single())               //第四次切换.subscribe(new Observer<String>() {@Overridepublic void onSubscribe(Disposable d) {System.out.println("onSubscribe thread========"+ Thread.currentThread().getName());}@Overridepublic void onNext(String s) {System.out.println("onNext thread========"+ Thread.currentThread().getName());}@Overridepublic void onError(Throwable e) {System.out.println("onError thread========"+ Thread.currentThread().getName());}@Overridepublic void onComplete() {System.out.println("onComplete thread========"+ Thread.currentThread().getName());}});//onSubscribe thread========main
//map1 thread========RxNewThreadScheduler-1
//map2 thread========RxNewThreadScheduler-1
//map3 thread========RxNewThreadScheduler-1
//map4 thread========RxNewThreadScheduler-1
//onNext thread========RxNewThreadScheduler-1
//onComplete thread========RxNewThreadScheduler-1

多次使用 observeOn

//observeOn : 切换后续操作的线程,可多次操作
Observable.just("source").map(new Function<String, String>() {@Overridepublic String apply(String s) {System.out.println("map1 thread========"+ Thread.currentThread().getName());return "map1:" + s;}}).observeOn(Schedulers.newThread())            //第一次切换.map(new Function<String, String>() {@Overridepublic String apply(String s) {System.out.println("map2 thread========"+ Thread.currentThread().getName());return "map2:" + s;}}).observeOn(Schedulers.io())                    //第二次切换.map(new Function<String, String>() {@Overridepublic String apply(String s) {System.out.println("map3 thread========"+ Thread.currentThread().getName());return "map3:" + s;}}).observeOn(Schedulers.computation())          //第三次切换.map(new Function<String, String>() {@Overridepublic String apply(String s) {System.out.println("map4 thread========"+ Thread.currentThread().getName());return "map4:" + s;}}).observeOn(Schedulers.single())               //第四次切换.subscribe(new Observer<String>() {@Overridepublic void onSubscribe(Disposable d) {System.out.println("onSubscribe thread========"+ Thread.currentThread().getName());//main}@Overridepublic void onNext(String s) {System.out.println("onNext thread========"+ Thread.currentThread().getName());//RxSingleScheduler-1}@Overridepublic void onError(Throwable e) {System.out.println("onError thread========"+ Thread.currentThread().getName());}@Overridepublic void onComplete() {System.out.println("onComplete thread========"+ Thread.currentThread().getName());//RxSingleScheduler-1}});//onSubscribe thread========main
//map1 thread========main
//map2 thread========RxNewThreadScheduler-1
//map3 thread========RxCachedThreadScheduler-1
//map4 thread========RxComputationThreadPool-1
//onNext thread========RxSingleScheduler-1
//onComplete thread========RxSingleScheduler-1

多次使用 subscribeOn 和 observeOn示例一:

Observable.just("source").map(new Function<String, String>() {@Overridepublic String apply(String s) {System.out.println("map1 thread========"+ Thread.currentThread().getName());return "map1:" + s;  			//RxSingleScheduler-1}}).observeOn(Schedulers.newThread())            //第一次切换.subscribeOn(Schedulers.single())             //第一次切换.map(new Function<String, String>() {@Overridepublic String apply(String s) {System.out.println("map2 thread========"+ Thread.currentThread().getName());return "map2:" + s;				 //RxNewThreadScheduler-2}}).subscribeOn(Schedulers.newThread())           //第二次切换.observeOn(Schedulers.io())                    //第二次切换.map(new Function<String, String>() {@Overridepublic String apply(String s) {System.out.println("map3 thread========"+ Thread.currentThread().getName());return "map3:" + s; 			//RxCachedThreadScheduler-2}}).observeOn(Schedulers.computation())          //第三次切换.subscribeOn(Schedulers.io())          		  //第三次切换.map(new Function<String, String>() {@Overridepublic String apply(String s) {System.out.println("map4 thread========"+ Thread.currentThread().getName());return "map4:" + s; 			//RxComputationThreadPool-2}}).subscribeOn(Schedulers.computation())        //第四次切换.observeOn(Schedulers.single())               //第四次切换.subscribe(new Observer<String>() {@Overridepublic void onSubscribe(Disposable d) {System.out.println("onSubscribe thread========"+ Thread.currentThread().getName());//main}@Overridepublic void onNext(String s) {System.out.println("onNext thread========"+ Thread.currentThread().getName());//RxSingleScheduler-1}@Overridepublic void onError(Throwable e) {System.out.println("onError thread========"+ Thread.currentThread().getName());}@Overridepublic void onComplete() {System.out.println("onComplete thread========"+ Thread.currentThread().getName());//RxSingleScheduler-1}});//onSubscribe thread========main
//map1 thread========RxSingleScheduler-1
//map2 thread========RxNewThreadScheduler-2
//map3 thread========RxCachedThreadScheduler-2
//map4 thread========RxComputationThreadPool-2
//onNext thread========RxSingleScheduler-1
//onComplete thread========RxSingleScheduler-1

多次使用 subscribeOn 和 observeOn示例二:

Observable.just(1).doOnNext(getConsumer(1))//RxCachedThreadScheduler-1.doOnSubscribe(getConsumerDisposable(1))//RxCachedThreadScheduler-1.observeOn(Schedulers.newThread()).subscribeOn(Schedulers.io()).doOnSubscribe(getConsumerDisposable(2))//RxNewThreadScheduler-1.doOnNext(getConsumer(2))//RxNewThreadScheduler-2.observeOn(Schedulers.computation()).subscribeOn(Schedulers.newThread()).doOnSubscribe(getConsumerDisposable(3))//RxSingleScheduler-1.doOnNext(getConsumer(3))//RxComputationThreadPool-1.subscribeOn(Schedulers.single()).doOnSubscribe(getConsumerDisposable(4))//main.observeOn(Schedulers.io()).subscribe(getObserver());//RxCachedThreadScheduler-2//4--accept Disposable thread========main
//onSubscribe thread========main
//3--accept Disposable thread========RxSingleScheduler-1
//2--accept Disposable thread========RxNewThreadScheduler-1
//1--accept Disposable thread========RxCachedThreadScheduler-1
//1--accept o=============1
//1--accept thread========RxCachedThreadScheduler-1
//2--accept o=============1
//2--accept thread========RxNewThreadScheduler-2
//3--accept o=============1
//3--accept thread========RxComputationThreadPool-1
//onNext o=============1
//onNext thread========RxCachedThreadScheduler-2
//onComplete thread========RxCachedThreadScheduler-2private Observer<Integer> getObserver() {return new Observer<Integer>() {@Overridepublic void onSubscribe(Disposable d) {System.out.println("onSubscribe thread========" + Thread.currentThread().getName());}@Overridepublic void onNext(Integer o) {System.out.println("onNext o=============" + o);System.out.println("onNext thread========" + Thread.currentThread().getName());}@Overridepublic void onError(Throwable e) {System.out.println("onError e=============" + e.getMessage());System.out.println("onError thread========" + Thread.currentThread().getName());}@Overridepublic void onComplete() {System.out.println("onComplete thread========" + Thread.currentThread().getName());}};
}private Consumer<Integer> getConsumer(final int i) {return new Consumer<Integer>() {@Overridepublic void accept(Integer integer) throws Exception {System.out.println(i + "--accept o=============" + integer);System.out.println(i + "--accept thread========"+ Thread.currentThread().getName());}};
}

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

http://www.lbrq.cn/news/2492929.html

相关文章:

  • 常德做网站的公司东莞网络推广平台
  • 南宁好的网站建设公司武汉本地seo
  • 怎样到国外做合法博彩法网站ciliba磁力猫
  • 求西北地区网站建设专家 西安沉睡网络 官方网址?百度竞价排名
  • 前端兼职一个静态页面报价乐山网站seo
  • 文件传输协议登陆网站百度竞价推广费用
  • 做网站页面怎么做seo关键词排名优化制作
  • 用wordpress和avada做网站上海百度推广排名优化
  • 北京神州网站建设中国广告网
  • 网站开发必会语言seo优化软件
  • 政府网站建设问题和建议网络推广的主要工作内容
  • 专门做logo的网站外贸网站有哪些
  • 做网站最清晰的字体平台怎样推广
  • 谈谈设计和建设网站体会互联网营销师培训费用是多少
  • 生态农庄网站模板关键字搜索软件
  • 网站用什么系统好用2022年最新新闻播报稿件
  • 用数据库做网站重庆seo网络优化咨询热线
  • 蜗牛星际做网站服务器网站排名怎么搜索靠前
  • 优酷 做视频网站还能成功吗老铁seo外链工具
  • 网站设计建设合同是云南优化公司
  • 自己做的网站可以查看谁访问吗今日国际新闻头条15条简短
  • wordpress 音乐网安徽新站优化
  • 设计素材网站图片万能识图
  • wordpress复制提醒seo推广软件
  • 专业做厂房的网站网站设计公司报价
  • 洛阳微网站建设网站百度权重查询
  • 西安网站建设制作价格数据交换平台
  • 南宁企业网站排名优化市场调研模板
  • 网站建设公司内幕百度极速版下载安装
  • 网站设计实施方案电脑培训机构
  • 电子电路设计学习
  • LeetCode 239:滑动窗口最大值
  • 深度解析 inaSpeechSegmenter:高效音频语音分割与检测开源工具
  • 分布式系统中Token续期问题解决方案
  • Python编程:初入Python魔法世界
  • “三十二应身”架构设计:论高扩展性度化系统的实现原理