Java56 자바 Callback package main.java.com; public class CallbackMain { public static void main(String args[]) { System.out.println("start"); MyCallback callback = new MyCallback(); //성공 케이스. callback.doWork("4", "7"); //실패 케이스. callback.doWork("4", "&"); callback.finish(); System.out.println("end"); } } package main.java.com; import java.nio.channels.CompletionHandler; import java.util.concurrent.ExecutorService; i.. 2020. 11. 3. 자바 ExecutorService3(Callable) Callable로 해당 작업을 만들고 매개변수로 호출하는 형식. package main.java.com; import java.util.concurrent.*; public class ExecutorServiceMain3 { public static void main(String[] args) throws InterruptedException, ExecutionException { System.out.println("start"); ExecutorService executorService = Executors.newCachedThreadPool(); Callable task = new Callable() { @Override public Integer call() throws Exception { int.. 2020. 11. 3. 자바 newCachedThreadPool , newFixedThreadPool newCachedThreadPool : 초기 스레드 0, 코어 스레드 0, 최대 스레드 int 최대 값.(OS 성능과 상황에 따라 달라짐.) 스레드 개수보다 작업 개수가 많으면 새 스레드를 생성한다. 스레드가 60초간 작업을 하지 않으면 스레드를 종료하고 풀에서 제거. newFixedThreadPool(int nThreads) : 초기 스레드 0, 코어 스레드, 최대 스레드는 매개변수에 따라 달라진다. 스레드가 놀고 있더라도 제거하지 않는다. 프로세서 수 체크. System.out.println(Runtime.getRuntime().availableProcessors()); 스레드 풀의 스레드는 main이 종료되더라도 작업을 처리하기 위해 남아있음. 프로그램 종료할 때, 스레드들을 종료하게 처리.(로그나.. 2020. 11. 3. 자바 ExecutorService2 package main.java.com; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; public class ExecutorServiceMain2 { public static void main(String[] args) throws ExecutionException, InterruptedException { System.out.println("start"); //쓰레드 픽스. ExecutorService executorService = Executors.. 2020. 11. 3. 이전 1 ··· 3 4 5 6 7 8 9 ··· 14 다음