Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- docker
- 자바의정석 연습문제
- inflearn
- 스프링 부트와 JPA
- 스프링MVC
- 자바연습문제
- 시큐어코딩
- java
- DispatcherServlet
- 제네릭
- 스프링
- 자바의정석
- 자바공부
- Python
- REGEXP_SUBSTR
- 스프링 핵심원리
- JPA
- 계층 쿼리
- 불친절한 SQL 프로그래밍
- 이것이자바다
- Java의정석
- 불친절한SQL프로그래밍
- 인프런
- 김영한
- 스프링입문
- Spring
- Secure Coding
- 서블릿
- Numpy
- 분석함수
Archives
- Today
- Total
Continuous Challenge
[이것이 자바다] 멀티 스레드 본문
728x90
728x90
멀티 스레드
용어 정리
- 프로세스 : 운영체제에서 실행 중인 프로그램
- 멀티 태스킹 : 두 가지 이상의 작업을 동시에 처리하는 것. 운영체제는 멀티 프로세스를 생성해서 처리. 멀티 태스킹이 꼭 멀티 프로세스를 의미하지는 않음.
하나의 프로세스가 두 가지 이상의 작업을 처리할 수 있는 이유는 멀티 스레드(Multi thread)가 있기 때문이다.
스레드(Thread)는 코드의 실행 흐름을 말하는데, 프로세스 내에 스레드가 두 개라면 두 개의 코드 실행 흐름이 생긴다는 의미이다.
멀티 프로세스들은 서로 독립적이므로 하나의 프로세스에서 오류가 발생해도 다른 프로세스에게 영향을 미치지 않는다.
하지만 멀티 스레드는 프로세스 내부에서 생성되기 때문에 하나의 스레드가 예외를 발생시키면 프로세스가 종료되므로 다른 스레드에게 영향을 미친다.
메인 스레드
모든 자바 프로그램은 메인 스레드(Main Thread)가 main() 메소드를 실행하면서 시작된다. 메인 스레드는 main() 메소드의 첫 코드부터 순차적으로 실행하고, main() 메소드의 마지막 코드를 실행하거나 return 문을 만나면 실행을 종료한다.
메인 스레드는 필요에 따라 추가 작업 스레드들을 만들어서 실행시킬 수 있다.
싱글 스레드에서는 메인 스레드가 종료되면 프로세스도 종료된다. 하지만 멀티 스레드에서는 실행 중인 스레드가 하나라도 있다면 프로세스는 종료되지 않는다. 메인 스레드가 작업 스레드보다 먼저 종료되더라도 작업 스레드가 계속 실행중이라면 프로세스는 종료되지 않는다.
728x90
728x90
'Study > 이것이 자바다' 카테고리의 다른 글
[이것이 자바다] 스레드 상태 (0) | 2023.05.02 |
---|---|
[이것이 자바다] 작업 스레드 (0) | 2023.04.17 |
[이것이 자바다] 와일드카드 타입 파라미터 (0) | 2023.04.03 |
[이것이 자바다] 제한된 타입 파라미터 (0) | 2023.04.03 |
[이것이 자바다] 제네릭 메소드 (0) | 2023.04.03 |
Comments