개발새발
#InputStream, OutputStream #Thread(스레드) #Multi-thread(멀티 스레드) 본문
InputStream, OutputStream
- 자바에서 입출력을 다루기 위해 제동
- 스트림은 단방향으로만 데이터를 전송할 수 있기에, 입력과 출력을 동시에 처리하기 위해서는 각각의 스트림이 필요
File을 다룰 때는 FileInputStream / FileOutputStream
프로세스를 다룰 때는 PipedInputStream / PipedOutputStream
Thread(스레드)
- 순차적으로 실행한 코드가 실처럼 이어져서 유래된 이음
- 하나의 스레드는 하나의 코드 실행 흐름이기 때문에 한 프로세스 내에 스레드가 두개라면 두개의 코드 실행 흐름이 생긴다
Multi-thread(멀티 스레드)
- 멀티 태스킹은 두 가지 이상의 작업을 동시에 처리하는 것을 의미
- 운영체제는 멀티 태스킹을 할 수 있도록 CPU및 메모리 자원을 프로세스마다 적당히 할당하고, 병렬로 싱행시킨다
- 멀티 프로세스가 여러 애플리케이션이 동시에 실행되는 거면
- 멀티 스레드는 애플리케이션 안에서 여러 작업(멀티태스킹)을 수행하는것
- 대용량 데잍터 처리시간을 줄이기 위해 데이터를 분할해서 병렬로 처리하는 곳에서 사용
- UI를 가지고 있는 애플리케이션에서 네트워크 통신을 하기 위해 사용
- 다수의 클라이언트의 요청을 처리하는 서버를 개발할 때도 사용

main therad
- main()메서드를 실행하면 시작
- main()메서드 첫줄부터 순차적으로 실행, 마지막 코드를 실행하거나 return을 만나면 종료
- 필요에 따라 작업 스레들을 만들어서 동시에 코드를 실행할 수 있다
- 즉, 멀티스레드를 생성해서 멀티 태스킹을 수행한다
- 싱글 스레드 애플리케이션은 메인 스레드가 종료되면 프로세스도 종료
- 멀티 스레드 애플리케이션에서는 실행 중인 스레드가 하나라도 있으면 프로세스는 종료되지 않는다
- 메인 스레드가 작업 스레드보다 먼저 종료되더라도 작업 스레드가 계속 실행중이면 프로세스는 종료되지 않는다
작업 스레드 생성과 실행
- 자바에서는 작업 스레드도 객체로 생성되기 떄문에 클래스가 필요
- Java.lang.Thread클래스를 직접 객체화해서 생성해도 되지만, Thread를 상송해서 하위 클래스를 만들어 생성할 수도 있다
'자바' 카테고리의 다른 글
재귀함수 #for문 (0) | 2022.08.04 |
---|---|
#재귀 (0) | 2022.08.03 |
#JSON (0) | 2022.08.03 |
#스트림 (0) | 2022.07.27 |
#enum #애노테이션 (0) | 2022.07.27 |
Comments