Android 当线程名获得4位数的名称后缀(如RxNewThreadScheduler-1009)时,这是否正常?
我做了一种轮询-每1s我调用Android 当线程名获得4位数的名称后缀(如RxNewThreadScheduler-1009)时,这是否正常?,android,multithreading,threadpool,rx-java,polling,Android,Multithreading,Threadpool,Rx Java,Polling,我做了一种轮询-每1s我调用read(),获取一些值,然后通过通知(值)(在引擎盖下)发送。readSubs.unsubscribe()只是为了防止下一次轮询比上一次读取更快 public void read(){ readSubs.unsubscribe(); readSubs = connection.read() .subscribe(new Action1<Integer>() {
read()
,获取一些值,然后通过通知(值)
(在引擎盖下)发送。readSubs.unsubscribe()代码>只是为了防止下一次轮询比上一次读取更快
public void read(){
readSubs.unsubscribe();
readSubs = connection.read()
.subscribe(new Action1<Integer>() {
@Override
public void call(Integer value) {
Log.d(LOG_TAG, "read " + value);
inform(value);
}
});
}
public void inform(Integer value) {
Log.d(TAG, "informed " + value + " on thread " + Thread.currentThread().toString());
broadcaster.newValue(value); //broadcaster extends LocalBroadcastManager
}
到目前为止,我得到的线程名是RxNewThreadScheduler-1009
,而且它还在增长。我的问题是:
线程名获得4位名称后缀是否正常
这是否意味着实际上有1009个线程
1) 这种情况会发生,这表明您应该改用Schedulers.io()
2) 不,这意味着您从应用程序开始就启动了许多线程(很可能已经完成)。1)这种情况发生了,这表明您应该使用Schedulers.io()
2) 不,这意味着有那么多线程从应用程序的一开始就开始了(而且很可能已经完成了)。您是否可以再补充一些:为什么我应该使用Schedulers.io()?io()重用线程,并且其索引不应该增长太大-在这个过程中节省了操作系统的处理程序。实际上,使用Schedulers.io()可以线程名称最多为RxIoScheduler-2。我在哪里可以找到关于Schedulers.io()的行为的文档?你能补充一些内容吗:为什么我应该使用Schedulers.io()?io()重用线程,并且它的索引不应该增长那么大-在这个过程中节省了操作系统的处理程序。事实上,使用Schedulers.io()线程名称最多是RxIoScheduler-2。在哪里可以找到有关Schedulers.io()行为的文档?
informed value 70 on thread Thread[RxNewThreadScheduler-1009,5,main]