Program, Process, Thread
Program
(컴퓨터 프로그램)
컴퓨터에서 실행될때 특정작업을 수행하는 일련의 명령어들의 모음(집합)이다.
대부분의 프로그램들은 하드디스크 등의 매체에 바이너리 형식의 파일로 저장되어 있다가
사용자가 실행시키면 메모리로 적재되어 실행된다.
프로그램을 CPU에서 사용하기 위해
하드디스크의 내용을 메모리에 올리는 것을
로딩(Loading)이라고 한다.
위키백과 - 프로그램 -
Process
(프로세스)
컴퓨터에서 연속적으로 실행되고 있는 컴퓨터프로그램을 말한다.
프로그램은 일반적으로 하드 디스크 등에 저장되어 있는
실행코드를 뜻하고 프로세스는 구동하여 프로그램 자체와
프로그램의 상태가 메모리 상에서 실행되는 작업 단위를 지칭한다.
ex) 게임을
위키백과 - 프로세스 -
Thread
(스레드)
어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다.
일반적으로 한 프로그램은 하나의 스레드를 가지고 있지만, 프로그램에 따라
둘 이상의 스레드를 동시에 실행할 수 있다. 이러한 방식을 멀티스레드라고 한다.
위키백과 - 스레드 -
위를 토대로
게임을 예로 들어보자.
하드디스크에 프로그램상태인 게임이 저장되어있다.
운영체제(OS)는 해당 게임 프로그램을 메모리에 로드하여
실행 가능한 상태인 프로세스로 만든다.
이 게임은 프로세스안에서 여러개의 스레드가 생성된다.
게임화면을 업데이트하고, 플레이어의 입력을 받고, 게임의 로직을 게산하고,
오디오를 재생하는 등의 작업을 각각의 스레드에서 처리하게 된다.
요약
프로그램 : 게임
프로세스 : OS에서 메모리에 올라가서 프로세스가 됨
스레드 : 이 프로세스 안에서 여러개의 스레드가 작업을 처리한다.
'자바 탐구' 카테고리의 다른 글
JPA) 데이터베이스 테이블과 Entity의 연관 관계 표현 차이 (0) | 2023.05.02 |
---|---|
인텔리제이) MySQL 연동하기 (0) | 2023.04.30 |
인텔리제이) Entity ERD 확인하기 (0) | 2023.04.27 |
자바) 제네릭 (0) | 2023.04.26 |
자바) 어노테이션 (0) | 2023.04.25 |