下面列出了io.reactivex.schedulers.Schedulers#newThread ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public static Scheduler cast(ThreadMode threadMode) {
Scheduler scheduler = null;
switch (threadMode) {
case COMPUTATION:
scheduler = Schedulers.computation();
break;
case NEWTHREAD:
scheduler = Schedulers.newThread();
break;
case MAIN:
scheduler = AndroidSchedulers.mainThread();
break;
case IO:
scheduler = Schedulers.io();
break;
default:
scheduler = AndroidSchedulers.mainThread();
break;
}
return scheduler;
}
/**
* 用于处理订阅事件在那个线程中执行
*
* @param observable d
* @param subscriberMethod d
* @return Observable
*/
private Flowable postToObservable(Flowable observable, SubscriberMethod subscriberMethod) {
Scheduler scheduler;
switch (subscriberMethod.threadMode) {
case MAIN:
scheduler = AndroidSchedulers.mainThread();
break;
case NEW_THREAD:
scheduler = Schedulers.newThread();
break;
case CURRENT_THREAD:
scheduler = Schedulers.trampoline();
break;
default:
throw new IllegalStateException("Unknown thread mode: " + subscriberMethod.threadMode);
}
return observable.observeOn(scheduler);
}
/**
* 用于处理订阅事件在那个线程中执行
*
* @param observable d
* @param subscriberMethod d
* @return Observable
*/
private Flowable postToObservable(Flowable observable, SubscriberMethod subscriberMethod) {
Scheduler scheduler;
switch (subscriberMethod.threadMode) {
case MAIN:
scheduler = AndroidSchedulers.mainThread();
break;
case NEW_THREAD:
scheduler = Schedulers.newThread();
break;
case CURRENT_THREAD:
scheduler = Schedulers.trampoline();
break;
default:
throw new IllegalStateException("Unknown thread mode: " + subscriberMethod.threadMode);
}
return observable.observeOn(scheduler);
}
@Override
public Flowable<String> getEmpNamesRx() {
Scheduler observerWorker = Schedulers.single();
Scheduler subscriberWorker = Schedulers.newThread();
Function<Employee, String> names = (emp) -> emp.getFirstName() + emp.getLastName();
Flowable<String> emps = Flowable.fromIterable(employeeDaoImpl.getEmployees())
.map(names).observeOn(observerWorker).subscribeOn(subscriberWorker);
return emps;
}
private void demo0() {
Schedulers.single();
Schedulers.trampoline();
Schedulers.newThread();
Schedulers.computation();
Schedulers.io();
Schedulers.io();
}
private void demo0() {
Schedulers.single();
Schedulers.trampoline();
Schedulers.newThread();
Schedulers.computation();
Schedulers.io();
Schedulers.io();
}
@NonNull
public Scheduler multi() {
return Schedulers.newThread();
}
private static Rx production() {
return new Rx(Schedulers.io(), AndroidSchedulers.mainThread(), Schedulers.newThread());
}
/**
* Provides the new thread Scheduler.
*
* @return provides the new thread Scheduler.
*/
@Override
public Scheduler provideNewThreadScheduler() {
return Schedulers.newThread();
}
/**
* Provides the new thread Scheduler.
*
* @return provides the new thread Scheduler.
*/
@Override
public Scheduler provideNewThreadScheduler() {
return Schedulers.newThread();
}