1
저는 일종의 투표를합니다. 매 1 초마다 read()
이라고 부르며 값을 받고 inform(value)
(후드 아래 LocalBroadcastManager)을 통해 보냅니다. readSubs.unsubscribe();
은 다음 투표가 이전 읽기보다 빠를 경우를 대비해 작성되었습니다. 로그 캣에스레드 이름이 4 자리 숫자 접미사 (예 : RxNewThreadScheduler-1009)가되면 정상입니까?
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
}
I 관찰자
informed value 70 on thread Thread[RxNewThreadScheduler-1009,5,main]
은 지금까지 나는 RxNewThreadScheduler-1009
에 스레드 이름을 얻을 그것은 성장하고. 내 질문 :
- 스레드 이름이 4 자리 이름 접미사가되면 정상입니까?
- 실제로 1009 개의 스레드가 있음을 의미합니까?
다음을 추가 할 수 있습니까? 왜 Schedulers.io()를 사용해야합니까? –
io()는 쓰레드를 재사용하며 그 인덱스는 그 프로세스에서 운영체제의 핸들러에 커다란 저장을하지 않아야합니다. – akarnokd
실제로 Schedulers.io()에서 스레드 이름은 대부분 RxIoScheduler-2입니다. Schedulers.io()의 동작에 대한 설명서는 어디에서 찾을 수 있습니까? –