aracılığıyla çalıştırıyorum Callable<String>
var. Periyodik olarak ScheduledExecutorService.scheduleAtFixedRate()
aracılığıyla çalıştırmak ve calcble üzerinde .call()
davetleri tarafından döndürülen tüm Dizeleri bir listesini almak istiyorum. scheduleAtFixedRate
olarak ben bu satırlar boyunca bir benim Callable
sarar özel Runnable
şey dışarı rulo gerekir bir Callable
(sadece Runnable
s) almaz: DoğalBelirli bir Callable'ı ScheduledExecutorService
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);
, benim kendi özel yayıyoruz önlemek istiyorum şey (özellikle çok iş parçacıklı kodda), bu yüzden bu tür bir toplama yapan bir JDK sınıfı var mı?
hayır, sizin için bir koleksiyona çağrılabilir sonuçlarını koymak için jdk varolan yarar yoktur. – jtahlborn
Ben de öyle düşündüm. Teşekkürler. –