-
(6주차 38일) 스레드수업 내용 정리 2024. 6. 19. 10:16
Java
스레드(Thread)
> 스레드
- 프로세스
- 운영체제에서 실행 중인 하나의 프로그램(애플리케이션)이다.
- 프로그램이 실행될 때 마다 개별적으로 생성된다.
- 하나의 프로그램(애플리케이션)은 다중 프로세스를 만들기도 한다.
- 스레드
- 프로세스 내에서 할당된 자원을 이용해 실제 작업을 수행하는 작업 단위이다.
- 모든 프로세스는 하나 이상의 스레드를 가지며 각각 독립적인 작업 단위를 가진다.
- 하나의 스레드는 하나의 코드 실행 흐름이기 때문에 한 프로세스 내에 여러 개의 스레드가 존재한다면 여러 개의 실행 흐름이 생긴다는 의미이다.
- 메인 스레드
- 모든 자바 프로그램(애플리케이션)은 메인 스레드가 main()메소드를 실행하면서 시작된다.
- 메인 스레드는 main() 메소드의 첫 코드부터 아래로 순차적으로 실행되고, 코드를 모두 실행하거나 return 문을 만나면 프로그램(애플리케이션) 실행이 종료된다.
- 메인 스레드는 필요에 의해 작업 스레드를 만들어서 병렬로 코드를 실행할 수 있다.
> 멀티 스레드
- 하나의 프로세스 내에서 여러 스레드가 동시에 작업을 수행하는 것을 말한다.
- 자바 프로그램(애플리케이션)은 메인 스레드가 종료되면 프로세스도 종료되지만 멀티 스레드 프로그램(애플리케이션)의 경우 실행 중인 스레드가 하나라도 있다면 프로세스가 종료되지 않는다.
- 멀티 스레드 프로그램(애플리케이션)은 하나의 프로세스 내부에 여러 개의 스레드가 생성되기 때문에 하나의 스레드가 예외를 발생시키면 프로세스 자체가 종료될 수 있다.
'수업 내용 정리' 카테고리의 다른 글
(7주차 45일) 정렬 (0) 2024.06.25 (6주차 39~41일) 자료구조 (0) 2024.06.24 (6주차 37일) IO 스트림 (0) 2024.06.17 (5주차 33일) 인터페이스, 예외 처리, 기본 API (0) 2024.06.13 (5주차 32일) 상속, 다형성, 추상 클래스 (1) 2024.06.12 - 프로세스