나는 Callable<String>
입니다. ScheduledExecutorService.scheduleAtFixedRate()
을 통해 주기적으로 실행하고 내 호출 가능 파일에서 .call()
호출에 의해 반환 된 모든 문자열 목록을 가져 오려고합니다. scheduleAtFixedRate
으로 나는이 라인을 따라 내 Callable
를 래핑 사용자 정의 Runnable
, 무언가를 출시 할 필요가 Callable
(만 Runnable
들)을하지 않습니다 당연히정기적으로 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);
, 나는 내 자신의 정의를 출시하지 않도록하고 싶습니다 (특히 멀티 스레드 코드에서), 이런 종류의 집계를 수행하는 JDK 클래스가 있는지 궁금합니다.
아니, 당신을 위해 모음으로 호출 가능 결과를 넣어 JDK의 기존 유틸리티 없다. – jtahlborn
그건 내가 생각한거야. 감사. –