컴퓨터를 이루는 주요 구성 요소에는 중앙 처리 장치(CPU), 메모리, 하드디스크가 있다.
CPU- 연산을 수행함으로써 실제 프로그램을 실행하는 장치
하드디스크- 데이터의 저장 역할을 수행
메모리- 저장된 데이터를 CPU로 보내는 역할
하드디스크에 저장된 프로그램이 실행되기 위해서는 먼저 프로그램을 메모리로 로딩하는 과정을 거쳐 프로세스 상태로 만들어야 한다.
프로그램- 하드디스크에 저장된 파일들의 모임
프로세스- 메모리에 로딩된 프로그램
멀티 프로세스- 동일한 프로그램을 메모리에 여러번 로딩하면 여러개의 프로세스가 동작하는 것
쓰레드란?
프로세스(process) 내에서 실제로 작업을 수행하는 CPU 수행 단위.
CPU를 사용하는 최소 단위라고 할 수 있다.
실제 CPU를 사용하는 것은 프로세스 내부의 쓰레드다.
쓰레드를 포함하고 있지 않은 프로세스는 존재할 수 없다.
.class 파일을 실행하면 자바 가상 머신은 main 쓰레드를 생성한다.
main 쓰레드 내부에서 2개 이상의 쓰레드를 생성해 실행하면 동시에 2개 이상의 쓰레드가 동작하게 되고, 이를 멀티 쓰레드 프로세스라고 한다.
멀티 쓰레드는 하나의 프로세스 내에서 2개 이상의 쓰레드가 동시에 CPU를 사용한다.
멀티 쓰레드의 동시성과 병렬성
동시성 : 처리할 작업의 수가 CPU의 코어 수보다 많을 때. CPU는 각 작업 쓰레드의 요청 작업을 번갈아가며 실행한다.
병렬성 : CPU의 코어 수가 작업 수보다 많을 때. 동시에 작업이 수행된다.
'BACK > JAVA' 카테고리의 다른 글
[JAVA] 람다식(메서드 구현 축약, 메서드 참조, 생성자 참조) (0) | 2022.10.02 |
---|---|
[JAVA] 쓰레드의 6가지 상태 (0) | 2022.08.26 |
[JAVA] 쓰레드의 동기화(메서드 동기화, 블록 동기화) (0) | 2022.08.10 |
[JAVA] 쓰레드의 속성 (0) | 2022.08.09 |
[JAVA] 쓰레드 생성 및 실행(Thread클래스, Runnable 인터페이스) (0) | 2022.08.08 |