IT/JAVA

[JAVA] 자바 - 멀티쓰레드(Thread)를 지원한다는 의미

먼저 쓰레드를 이해하기 위해 응용프로그램>프로그램 vs 프로세스> 쓰레드 순서로 이해해보자.

-> 응용프로그램

    - 워드, 엑셀 등 우리가 현재 사용하는 프로그램을 의미한다.

    - 이 응용프로그램도 여러 개의 프로그램으로 구성되어 있다.

-> 여기서 프로그램이란

    - 아직 실행되지 않은 상태를 의미한다. 즉, 운영체제에 의해 메모리 공간을 할당되지 않았다는 뜻

    - 반대로, 할당되어야 프로그램이 실행된다.

 

   이 때, 실행된 상태(메모리 공간을 할당받은 상태)의 프로그램을 -> 프로세스 라고 한다.

 

 실행x - 프로그램

 실행o - 프로세스

 

->그럼 이제 쓰레드란?

-프로세스 내에서 실행되는 여러 흐름의 단위

-응용 프로그램에는 여러 프로세스로 구성되어 있듯이 프로세스에는 여러 쓰레드(최소 1개)로 구성되어 있다.

-이것도 결국 하나의 기능을 가진 코드 단위

 

->멀티쓰레드?

여러 쓰레드들을 순차적으로 이어간다면 좋지만, 시간이 소요될 것이다.

 

그래서 한 번에 여러가지 작업을 할 수 있게 만든걸 멀티쓰레드라고 한다.