public static void main(String[] args) {
Observable.timer(5000, TimeUnit.MILLISECONDS)
.subscribe(new Consumer<Long>() {
@Override
public void accept(Long t) throws Exception {
System.err.println("这里面并没有执行");
}
});
}
Rxjava 在创建线程的时候默认创建守护线程 RxThreadFactory的 newThread 方法
public Thread newThread(Runnable r) {
StringBuilder nameBuilder = new StringBuilder(prefix).append('-').append(incrementAndGet());
String name = nameBuilder.toString();
Thread t = nonBlocking ? new RxCustomThread(r, name) : new Thread(r, name);
t.setPriority(priority);
t.setDaemon(true); //这行代码
return t;
}
Rxjava 线程切换 默认是 Schedulers.COMPUTATION(一个公共线程池) ,你也可以自定义一个线程池
一个简单的例子
lic static void main(String[] args) {
Observable.timer(5000, TimeUnit.MILLISECONDS)
.subscribeOn(Schedulers.from(Executors.newScheduledThreadPool(1, new ThreadFactory() {
@Override
public Thread newThread(Runnable r) {
return new Thread(r);
}
}))).subscribe(new Consumer<Long>() {
@Override
public void accept(Long t) throws Exception {
System.err.println("——————");
}
});