私は持っていCallable<String>
ます。を介して定期的に実行し、callable の呼び出しScheduledExecutorService.scheduleAtFixedRate()
によって返されたすべての文字列のリストを取得したいと考えています。.call()
asは a (s のみ) をscheduleAtFixedRate
取りません 。次の行に沿ってmy をラップするカスタムを展開する必要があります。Callable
Runnable
Runnable
Callable
final Callable<String> myCallable = ....;
final ConcurrentLinkedQueue<String> results
= new ConcurrentLinkedQueue<String>();
Runnable r = new Runnable() {
@Override public void run() {
try {
results.add(myCallable.call());
} catch (Exception e) {
results.add(null); // Assuming I want to know that an invocation failed
}
}
};
ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
executor.scheduleAtFixedRate(r, 0, 1, TimeUnit.SECONDS);
当然のことながら、(特にマルチスレッド コードで) 独自のカスタム要素を展開することは避けたいので、この種の集計を行う JDK クラスがあるのだろうか?