자바 JDK 1.5?에서 나왔다고 하는 쓰레드.
닷넷에 백그라운드 워커랑 비슷한 개념같다. 아마 비슷한 시기에 나와서 그런듯함.
package main.java.com;
import java.util.concurrent.*;
public class FutureMain {
public static void main(String[] args) throws InterruptedException, ExecutionException, TimeoutException {
System.out.println("start");
ExecutorService executorService = Executors.newCachedThreadPool();
Future<Double> future = executorService.submit(new Callable<Double>() {
@Override
public Double call() throws Exception {
System.out.println("call");
return addDouble();
}
});
System.out.println("end1");
Double result = future.get(1, TimeUnit.SECONDS); //블록킹
System.out.println(result);
}
private static Double addDouble() {
Double value = 0.0D;
for(int i = 0; i < 100; i++){
System.out.println("call" + i);
value = value + 1;
}
return value;
}
}
ExecutorService을 통해서 쓰레드를 만들고 돌리는 형식. 매개변수로 팩토리가 들어가는 걸로 봐선 팩토리 생성 후 넣을 수 있는 개념같다.
해당 코드는 바로 실행되고, Double result = future.get(1, TimeUnit.SECONDS); 에서 실행이 완료될 때까지 동기화 시킬 수 있음.
'Java' 카테고리의 다른 글
자바 ExecutorService2 (0) | 2020.11.03 |
---|---|
자바 ExecutorService (0) | 2020.11.03 |
스프링부트 JPA 사용기 (0) | 2020.11.01 |
인텔리제이 클래스 다이어그램 (0) | 2020.09.17 |
자바 Post 한글 깨짐 (0) | 2020.08.21 |