이런 맥락에서 우리는 미리 정의된 시간 초과를 초과하는 작업을 중단할 수 있는 ExecutorService 구현에 관심이 있습니다.
이러한 구현 중 하나는 TimeoutThreadPoolExecutor는 제출된 작업에 대한 시간 초과 기간을 지정하는 메커니즘을 제공합니다.
<br>import java.util.List;<br>java.util.concurrent.*;</p> <p>공개 클래스 가져오기 TimeoutThreadPoolExecutor는 ThreadPoolExecutor {</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">private final long timeout; private final TimeUnit timeoutUnit; // ... (rest of the implementation)
}
를 확장합니다. 이 실행기 서비스를 활용하려면 원하는 항목을 지정하여 인스턴스를 생성하기만 하면 됩니다. timeout:
TimeoutThreadPoolExecutor executor = new TimeoutThreadPoolExecutor(..., timeout, TimeUnit.MILLISECONDS);
그런 다음 평소대로 실행자에게 작업을 제출합니다. 지정된 시간 초과를 초과하는 작업은 중단됩니다.
또는 ScheduledExecutorService를 사용할 수 있습니다.
ScheduledExecutorService executor = Executors.newScheduledThreadPool(2); Future<?> handler = executor.submit(new Callable() { /* ... */ }); executor.schedule(() -> handler.cancel(true), 10000, TimeUnit.MILLISECONDS);
이 전략은 작업이 다음 시간 이후에 중단되도록 보장합니다. 10초.
위 내용은 시간 초과 후 작업을 중단하는 ExecutorService를 어떻게 만들 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!