Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

개발새발

#InputStream, OutputStream #Thread(스레드) #Multi-thread(멀티 스레드) 본문

자바

#InputStream, OutputStream #Thread(스레드) #Multi-thread(멀티 스레드)

개발하는후추 2022. 8. 3. 12:08

InputStream, OutputStream

  • 자바에서 입출력을 다루기 위해 제동
  • 스트림은 단방향으로만 데이터를 전송할 수 있기에, 입력과 출력을 동시에 처리하기 위해서는 각각의 스트림이 필요

File을 다룰 때는 FileInputStream / FileOutputStream

프로세스를 다룰 때는 PipedInputStream / PipedOutputStream

Thread(스레드)

  • 순차적으로 실행한 코드가 실처럼 이어져서 유래된 이음
  • 하나의 스레드는 하나의 코드 실행 흐름이기 때문에 한 프로세스 내에 스레드가 두개라면 두개의 코드 실행 흐름이 생긴다

Multi-thread(멀티 스레드)

  • 멀티 태스킹은 두 가지 이상의 작업을 동시에 처리하는 것을 의미
  • 운영체제는 멀티 태스킹을 할 수 있도록 CPU및 메모리 자원을 프로세스마다 적당히 할당하고, 병렬로 싱행시킨다
  1. 멀티 프로세스가 여러 애플리케이션이 동시에 실행되는 거면
  2. 멀티 스레드는 애플리케이션 안에서 여러 작업(멀티태스킹)을 수행하는것
  • 대용량 데잍터 처리시간을 줄이기 위해 데이터를 분할해서 병렬로 처리하는 곳에서 사용
  • 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