java Future 인터페이스 사용법 상세 정보
Java에서 코드가 실행되는 가장 긴 시간, 즉 시간 초과를 설정해야 한다면 Java 스레드 탱크 Executor Service 클래스와 Future 인터페이스를 결합하여 실현할 수 있습니다.Future 인터페이스는 Java 표준 API의 일부입니다.util.concurrent 패키지에 있습니다.Future 인터페이스는 Java 스레드 Future 모드의 구현으로 비동기식 계산을 할 수 있습니다.
Future 모드는 이렇게 설명할 수 있다. 나는 하나의 임무가 있는데 Future에 제출했고 Future가 나를 대신해서 이 임무를 완성했다.그동안 나 혼자 하고 싶은 거 다 할 수 있어.시간이 지나면 Future에서 결과를 추출할 수 있습니다.주문서를 한 장 내린 셈인데, 일정 시간 후에 주문서를 가지고 물건을 인출할 수 있고, 이 기간에 다른 어떤 일을 할 수 있다.그 중에서 Future 인터페이스는 바로 주문서입니다. 진정으로 주문서를 처리하는 것은 Executor류입니다. 이것은 Future 인터페이스의 요구에 따라 제품을 생산합니다.
Future 인터페이스는 작업이 완료되었는지 확인하고, 작업이 완료되면 결과를 얻을 때까지 기다리며, 작업 수행의 시간 초과 시간을 설정할 수 있는 방법을 제공합니다.이 시간 초과 설정 방법은 자바 프로그램의 시간 초과 실행을 실현하는 관건이다.
Future 인터페이스는 일반적인 인터페이스로 엄격한 형식은 Future
ExecutorService executor = Executors.newSingleThreadExecutor();
FutureTask<String> future =
new FutureTask<String>(new Callable<String>() {// Callable
public String call() {
// , String,
}});
executor.execute(future);
//
try {
result = future.get(5000, TimeUnit.MILLISECONDS); // , 5 。 future.get(),
} catch (InterruptedException e) {
futureTask.cancel(true);
} catch (ExecutionException e) {
futureTask.cancel(true);
} catch (TimeoutException e) {
futureTask.cancel(true);
} finally {
executor.shutdown();
}
ExecutorService executor = Executors.newSingleThreadExecutor();
FutureTask<String> future =
new FutureTask<String>(new Callable<String>() {// Callable
public String call() {
// , String,
}});
executor.execute(future);
//
try {
result = future.get(5000, TimeUnit.MILLISECONDS); // , 5 。 future.get(),
} catch (InterruptedException e) {
futureTask.cancel(true);
} catch (ExecutionException e) {
futureTask.cancel(true);
} catch (TimeoutException e) {
futureTask.cancel(true);
} finally {
executor.shutdown();
}
Future 객체를 직접 구성하지 않고도 Executor Service를 사용할 수 있습니다.Submit 방법으로 Future 대상을 얻는다. submit 방법은 Callable 인터페이스 유형을 지원하고 Runnable 인터페이스를 매개 변수로 하여 매우 유연성을 가진다.사용 예는 다음과 같습니다.
ExecutorService executor = Executors.newSingleThreadExecutor();
FutureTask<String> future = executor.submit(
new Callable<String>() {// Callable
public String call() {
// , String,
}});
//
//
ExecutorService executor = Executors.newSingleThreadExecutor();
FutureTask<String> future = executor.submit(
new Callable<String>() {// Callable
public String call() {
// , String,
}});
//
//
Future 인터페이스를 이용하여 프로그램의 실행 시간 초과를 실현하는 데 대체적인 사용법이 이렇게 많기 때문에 다음에 Future 인터페이스의 내부 실현, 특히 실행 시간 초과의 실현을 설정해야 한다.읽어주셔서 감사합니다. 여러분에게 도움이 되었으면 좋겠습니다. 본 사이트에 대한 지지에 감사드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.