JAVA 기초개념 (ThreadPool, ExecutorService, execute(), submit(), Runnable & Callable, 종료메서드 (shutdown(), shutdownNow(), awaitTermination())
Thread Pool 대여소 같은 역할 수행 예) 도서관, 대여소 Thread를 보유하고 있다가 순서에 따라 빌려주고, 사용 후 돌려 받는다. ExecutorService 객체를 통해 생성된다. 생성시에는 초기/ 코어/ 최대 스레드 수를 명시해준다. 생성된 작업은 submit(), execute()로 실행시킨다. execute( ) void 작업처리결과를 받지못함 작업처리도중 예외상황에 스레드를 종료하고 풀에서 스레드 제거 submit( ) Future 작업처리결과를 Future를 통해 반환 작업처리도중 예외상황에도 스레드를 종료하지않고 재사용 ThreadPool 사용해보기 public class ThreadPool { public static void main(String[] args) { Execut..
JAVA 기초개념 (Thread State, Control(sleep(), yield(), join(),notify(), wait()), 멈추기(stop flag, interrupt()), DemonThread)
Thread State 생성부터 종료까지의 상태 값 우리는 getState()를 통해 현재 상태를 알 수 있다. New, Runnable, Terminated 상태 값 정도는 알고 있자! 상태 열거상수 설명 객체생성 NEW 스레드 객체 생성, start() 호출 전 실행대기 RUNNABLE 실행 상태로 언제든지 이동 할 수 있는 상태 일시정지 WATING 다른 스레드가 통지 할때 까지 기다리는 상태 TIMED_WATING 주어진 시간동안 기다리는 상태 BLOCKED 사용하려는 객체의 Lock이 풀릴때 까지 기다리는 상태 종료 TERMINATED 실행을 마친 상태 getState()사용해보기 public class Main { private static Thread.State state; public st..
JAVA 기초개념 (JAVA .io, JAVA.nio, InputStream, OutputStream, Filesystem, Scanner, File.io, FileReader, flush, close, path..)
JAVA I/O System 외부로부터의 Data를 다루는 것 System 안으로 또는 밖으로 이동하는 Data의 흐름을 Stream 이라고 한다. java.io package는 크게 InputStream & OutputStream으로 나뉜다. 바이트기반과 문자기반으로 분류 InputStream byte 기반 입력 스트림 최상위 클래스 하위클래스들은 각 특화된 분야가 있어 InputStream을 직접 사용하는 경우는 드물다. OutputStream byte 기반 출력 스트림 최상위 클래스 하위클래스들은 각 특화된 분야가 있어 OutStream 을 직접 사용하는 경우는 드물다. Scanner scanner클래스를 이용하면 java에서 사용되는 여러 데이터 쉽게 읽을 수 있다. Scanner scanner ..
JAVA 기초개념 (Collection Framework(자료구조) : List(ArrayList, Vector, LinkedList) / Set(HashSet) / Map(HashMap, HashTable)/ FIFO/LIFO)
Collection Framework(자료구조) collection interface를 최상위로 하는 자료구조 interface 이다. List, Set, Map interface를 implements하여 각 collection으로 사용 데이터 추가, 삭제, 검색 방법 비슷하다. 그 이유는 최상위 collection과 하위의 List, Set, Map interface 구현하기 때문 인터페이스 구현시 장점은? 필수 method 강제할 수 있다. List Collection 1) Array List Array List는 인덱스로 객체를 관리한다는 점에서 Array와 유사 / 차이점은 array달리 인덱스 유연하다는 것 Array은 없어지지 않고 null상태가 되지만, array List는 인덱스가 1씩 당..