쓰레드(Thread) : 동일 프로세스 내에 "독립"적인 다중 수행 프로그램 단위
* 쓰레드(Thread) 사용 목적 : 병행성 증진, 처리율 향상, 응답속도 향상 목적
자바에서 쓰레드를 만들어서 사용하는 방법
1. Thread 클래스를 상속받는 클래스를 정의
2. 정의한 클래스에서 run() 메소드를 override 해 쓰레드에서 할 일을 구현한다.
3. Thread 클래스의 인스턴스 생성 ex) Thread th1 = new Thread(test);
4. 생성된 인스턴스에서 start() 메소드 호출
* Runnable 인터페이스는 run() 가상메소드 하나만 가지고 있는 인터페이스이기 때문에 Lambda-expression으로도 구현 가능하다.
Thread Method
* Thread.run() : 쓰레드가 실행할 부분 기술(오버라이딩 해야함)
* Thread.start() : 쓰레드 시작, run() 메소드 호출
* Thread.sleep() : ms단위로 딜레이를 준다.
* Thread.setPriority() : Thread 클래스가 가지고 있는 메소드이며, 쓰레드의 우선순위(priority)를 변경하는 기능
* Thread 클래스에 정의된 우선순위 : MAX_PRIORITY(10), MIN_PRIORITY(1), NORM_PRIORITY(5)
* Thread.join() : 지정한 시간 동안 쓰레드가 실행되도록 둔다. 지정한 시간이 지나거나, 작업이 종료되면 join()을 호출한 쓰레드로 돌아와 실행한다.
#-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
java.io 패키지의 주요 클래스
1. 바이트(byte) 단위 입출력 스트림 클래스
1) java.io.InputStream : 프로그램이 "바이트 단위" 데이터를 읽어들이는(read) 통로
2) java.io.OutputStream : 프로그램이 "바이트 단위" 데이터를 쓰는(write) 통로
* 위 두개 클래스는 추상클래스이다.
2. 문자(character) 단위 입출력 스트림 클래스
1) java.io.Reader : 프로그램이 "문자 단위" 데이터를 읽어들이는(read) 통로
2) java.io.Writer : 프로그램이 "문자 단위" 데이터를 쓰는(write) 통로
3. java.io.File : 파일 시스템의 파일정보를 얻기 위한 클래스
4. java.io.Console : 콘솔로부터 문자를 입출력하기 위한 클래스