프로세스(Process)
운영체제에 의해 메모리 공간을 할당받아 CPU에서 실행/제어되고 있는 프로그램이다.
데이터(data) + 자원(memory) + 스레드(Thread)로 구성돼 실제로 프로그램이 실행되기까지는
스레드가 데이터+자원을 활용하여 작업을 수행한다.
- 프로그램은 컴퓨터가 특정 작업을 수행하기 위해 따르는 명령어의 모음
쓰레드(Thread)
하나의 프로세스 내에서 여러 개의 실행 흐름(단일, 동시적, 병렬적)을 두어 작업을 효율적으로 처리하기 위한 모델이다.
프로그램 실행하면 JVM이 시작되고 JVM이 시작되면 자바 프로세스가 시작된다.
이 프로세스 안에 스레드가 있다.
여러 프로세스가 공유하는 하나의 스레드가 수행되는 일은 없다.
어떤 프로세스든 하나 이상의 스레드가 수행된다.
두 개 이상의 스레드를 가지는 프로세스를 멀티스레드 프로세스라고 한다.
멀티스레드는 주어진 자원을 극한으로 사용하기 위한 모델이다.
프로세스(Process)와 쓰레드(Thread)의 차이점
프로세스는 완벽히 독립적이기 때문에 메모리 영역을 다른 프로세스와 공유를 하지 않지만
스레드는 해당 스레드를 위한 스택을 생성할 뿐 프로세스 내의 메모리를 공유해서 사용할 수 있다.
개념 창고/CS