Continuous Challenge

[이것이 자바다] 멀티 스레드 본문

Study/이것이 자바다

[이것이 자바다] 멀티 스레드

응굥 2023. 4. 11. 19:08
728x90
728x90

멀티 스레드

용어 정리

  • 프로세스 : 운영체제에서 실행 중인 프로그램
  • 멀티 태스킹 : 두 가지 이상의 작업을 동시에 처리하는 것. 운영체제는 멀티 프로세스를 생성해서 처리. 멀티 태스킹이 꼭 멀티 프로세스를 의미하지는 않음.

하나의 프로세스가 두 가지 이상의 작업을 처리할 수 있는 이유는 멀티 스레드(Multi thread)가 있기 때문이다.
스레드(Thread)는 코드의 실행 흐름을 말하는데, 프로세스 내에 스레드가 두 개라면 두 개의 코드 실행 흐름이 생긴다는 의미이다.

 

멀티 프로세스와 멀티 스레드의 차이

멀티 프로세스들은 서로 독립적이므로 하나의 프로세스에서 오류가 발생해도 다른 프로세스에게 영향을 미치지 않는다.
하지만 멀티 스레드는 프로세스 내부에서 생성되기 때문에 하나의 스레드가 예외를 발생시키면 프로세스가 종료되므로 다른 스레드에게 영향을 미친다.

 

메인 스레드

모든 자바 프로그램은 메인 스레드(Main Thread)가 main() 메소드를 실행하면서 시작된다. 메인 스레드는 main() 메소드의 첫 코드부터 순차적으로 실행하고, main() 메소드의 마지막 코드를 실행하거나 return 문을 만나면 실행을 종료한다.

 

메인 스레드는 필요에 따라 추가 작업 스레드들을 만들어서 실행시킬 수 있다. 

 

싱글 스레드에서는 메인 스레드가 종료되면 프로세스도 종료된다. 하지만 멀티 스레드에서는 실행 중인 스레드가 하나라도 있다면 프로세스는 종료되지 않는다. 메인 스레드가 작업 스레드보다 먼저 종료되더라도 작업 스레드가 계속 실행중이라면 프로세스는 종료되지 않는다.

728x90
728x90
Comments