프로세스
- 컴퓨터에서 실행되고 있는 프로그램을 말하며 CPU 스케줄링의 대상이 되는 작업(task)이라는 용어와 거의 같은 의미로 쓰입니다.
- 코드, 데이터, 스택, 힙 메모리 영역을 기반으로 작업을 합니다.
- 다른 프로세스와 독립적인 메모리 공간을 가지고 있습니다. 그래서 하나의 프로세스의 오류가 다른 프로세스에 영향을 미치지 않습니다.
스레드
- 프로세스 내에서 실행되는 흐름의 단위를 말합니다.
- 하나의 프로세스는 여러 개의 스레드를 가질 수 있으며, 스레드들은 프로세스 내의 주소 공간과 자원을 공유합니다.
- 스레드 간의 통신이 간단하고 빠르며, 프로세스 간 전환 비용보다 스레드 간 전환 비용이 적습니다.
- 프로세스 내에서 동작하기 때문에 하나의 스레드의 오류가 다른 스레드에도 영향을 미칠 수 있습니다.
- 동시에 여러 스레드가 공유 자원을 사용하면 동기화 문제가 발생할 수 있습니다.
'JAVA > 스레드' 카테고리의 다른 글
[JAVA] 스레드 우선순위 설정과 데몬 스레드 (0) | 2023.08.30 |
---|---|
[JAVA] 스레드의 생성과 실행: Java로 구현하는 방법 (0) | 2023.08.30 |
[JAVA] Runnable 인터페이스와 Thread 클래스(sleep, join, interrupt) (0) | 2023.08.30 |
[JAVA] 스레드의 생명 주기 및 상태 전이 (0) | 2023.08.30 |
[JAVA] 스레드의 정의 및 장점과 단점 (0) | 2023.08.29 |