线程名取4位后缀是否正常(如RxNewThreadScheduler-1009)?
Is it normal when thread name gets 4 digits name suffix (like RxNewThreadScheduler-1009)?
我进行了一种轮询 - 每 1 秒我调用 read()
,获取一些值并通过 inform(value)
(LocalBroadcastManager 在后台发送)。 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
}
我观察 logcat 那
informed value 70 on thread Thread[RxNewThreadScheduler-1009,5,main]
到目前为止,我获得的线程名称最多为 RxNewThreadScheduler-1009
,并且它还在增长。我的问题:
- 线程名有4位后缀是否正常?
- 是否意味着实际上有1009个线程?
1) 发生这种情况表明您应该改用 Schedulers.io()
。
2) 不,这意味着您从应用程序一开始就启动了很多线程(并且很可能已完成)。
我进行了一种轮询 - 每 1 秒我调用 read()
,获取一些值并通过 inform(value)
(LocalBroadcastManager 在后台发送)。 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
}
我观察 logcat 那
informed value 70 on thread Thread[RxNewThreadScheduler-1009,5,main]
到目前为止,我获得的线程名称最多为 RxNewThreadScheduler-1009
,并且它还在增长。我的问题:
- 线程名有4位后缀是否正常?
- 是否意味着实际上有1009个线程?
1) 发生这种情况表明您应该改用 Schedulers.io()
。
2) 不,这意味着您从应用程序一开始就启动了很多线程(并且很可能已完成)。