JAVA_31_Process & Program & Thread & CPU
📌 Program이란?
📌 Process란?
- 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 말한다
- 즉, CPU가 동작시키고 있는 것
1) Multi Process
- 하나 이상의 프로세스를 가지는 것
- ex) 카카오톡, 인스타그램
- 각 프로세스는 서로 독립적
📌Thread란?
- 작업단위
- cpu가 데이터를 처리할 때 Thread라는 단위로 처리한다.
- 한 가지의 작업
- Multi Thread란
- 한 프로세스가 두 가지 이상의 작업을 처리하는 것
- ex) 카카오톡이라는 프로세스를 이용중에 사진을 보내는 스레드와 메신저를 보내는 두가지 스레드를 처리하는 것
- Multi Process는 각 다른 작업이라서 하나가 오류나더라도 다른 하나에 영향을 끼치지 않지만 Multi Thread는 한 process에 Multi Thread가 있기 때문에 한 thread에서 문제가 발생하면 process 자체가 종료된다.
- 대부분의 컴퓨터는 Multi Thread를 지원한다.
- main Thread
- 자바의 모든 애플리케이션은 메인스레드가 main() 메소드를 싱행하면서 시작한다.
- single Thread
- 싱글 스레드는 애플리케이션이 메인 스레드를 종료하면 프로세스도 종료된다.
- Multi Thread
- 실행중인 스레드가 하나라도 있으면 프로세스는 종료되지 않는다.
- 메인 스레드가 종료되더라도 작업 스레드가 계속 실행중이면 종료되지 않는다.
📌 CPU
- CPU는 Thread단위로 처리한다.
- CPU는 여러가지의 Thread를 동시에 실행하는게 아닌, 각각의 Thread를 조금씩 수행하면서 왔다갔다 하면서 수행하지만 너무 빠르기 때문에 동시에 실행하는것처럼 보여진다.
- 대부분에 컴퓨터는 CPU가 한 개이고, 여러가지면 더 빠르게 수행한다.