java青少年全国卷_RxJava 全国卷 - 必知必会

本文通过实例探讨了在Android应用中如何确保线程安全,特别是针对RxJava的异步操作,展示了不同Scheduler的使用对主线程和子线程的影响。通过一步步的代码分析,学习者可以理解线程同步的重要性和正确的线程调度方式。
摘要由CSDN通过智能技术生成

一、上岗先考试。

道路千万条,“线程安全” 第一条。行车不规范,CaseStudy 两行泪!!!

考试类型:开卷

作弊行为:运行源代码

二、试卷 - 单项选择

runOnUiThread(new Runnable() {

@Override

public void run() {

rxJavaExamination();

}

});

private void rxJavaExamination() {

Observable.create(new ObservableOnSubscribe() {

@Override

public void subscribe(ObservableEmitter emitter) throws Exception {

Log.d("hlwang", "111 isMainThread : " + (Thread.currentThread() == Looper.getMainLooper().getThread()));

emitter.onNext("第一级主题");

emitter.onComplete();

}

})

.subscribeOn(AndroidSchedulers.mainThread())

.doOnSubscribe(new Consumer() {

@Override

public void accept(Disposable disposable) throws Exception {

Log.d("hlwang", "222 isMainThread : " + (Thread.currentThread() == Looper.getMainLooper().getThread()));

}

})

.observeOn(Schedulers.io())

.doOnNext(new Consumer() {

@Override

public void accept(String s) throws Exception {

Log.d("hlwang", "333 isMainThread : " + (Thread.currentThread() == Looper.getMainLooper().getThread()));

}

})

.subscribeOn(Schedulers.newThread())

.doOnSubscribe(new Consumer() {

@Override

public void accept(Disposable disposable) throws Exception {

Log.d("hlwang", "444 isMainThread : " + (Thread.currentThread() == Looper.getMainLooper().getThread()));

}

})

.observeOn(Schedulers.io())

.subscribe(new Observer() {

@Override

public void onSubscribe(Disposable d) {

Log.d("hlwang", "555 isMainThread : " + (Thread.currentThread() == Looper.getMainLooper().getThread()));

}

@Override

public void onNext(Object o) {

Log.d("hlwang", "666 isMainThread : " + (Thread.currentThread() == Looper.getMainLooper().getThread()));

}

@Override

public void onError(Throwable e) {

}

@Override

public void onComplete() {

}

});

}

A :

555 isMainThread : true

444 isMainThread : true

222 isMainThread : false

111 isMainThread : true

333 isMainThread : false

666 isMainThread : false

B :

111 isMainThread : true

222 isMainThread : false

333 isMainThread : false

444 isMainThread : true

555 isMainThread : true

666 isMainThread : false

C :

444 isMainThread : true

555 isMainThread : true

222 isMainThread : false

111 isMainThread : true

333 isMainThread : false

666 isMainThread : false

D :

111 isMainThread : true

222 isMainThread : false

444 isMainThread : true

555 isMainThread : true

333 isMainThread : false

666 isMainThread : false

E :

以上,无正确答案,我要评论正确答案

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值