0

ScheduledThreadPoolExecutorを使用せずに単一のスレッドでを作成するにはどうすればよいExecutors.newSingleThreadScheduledExecutorですか?

私がそうしたい理由は、後の呼び出しが のインスタンスではDelegatedScheduledExecutorServiceなく のインスタンスを返すためです。そのため、 etc などThreadPoolExecutorのメソッドを使用できるようにしようとするとgetQueue()失敗します。ThreadPoolExecutor直接作成できる場合は、それが役立ちます。

そして、私がそうしたい理由getQueue()は、エグゼキューターで現在キューに入れられているタスクのサイズを知る方法が他にないからです。

4

2 に答える 2

1

手動で作成できます (これExecutors.newScheduledThreadPool()は、返されたオブジェクトを希望どおりに使用するためにキャストが必要になることを除いて、内部で行うことです):

ScheduledThreadPoolExecutor scheduler = new ScheduledThreadPoolExecutor(1);
BlockingQueue q = scheduler.getQueue();
于 2012-08-07T14:11:28.970 に答える