본문 바로가기
Programing/JAVA (& 혼공자Java)

자바(Java) -스레드1

by a.k.a DUKI 2020. 12. 10.
728x90
반응형

프로세스(process): 애플리 케이션을 실행하면 운영체제로부터 실행에 필요한 메모리를 할당받아 애플리케이션이 실행

스레드(thread): 프로세스 내부에서 코드의 실행 흐름, 애플리케이션을 개발하는데 필수 요소이다.

 

스레드 (thread)

스레드는 한가닥의 실이라는 뜻인데, 한가지 작업을 실행하기 위해 순차적으로 실행할 코드를 실처럼 이어놓았다하여 유래 되었다.

한 프로세스 내에 스레드가 2개 이상이면 멀티 스레드 라고 한다.

 

멀티 프로세스는 자신의 메모리를 가지고 실행하므로 서로 독립적이지만,

멀티 스레드는 하나의 프로세스 내부에 생성되므로 스레드 하나가 예외를 발생시키면 다른 스레드도 영향을 받는다.

 

혼공자 책 참고

멀티 스레드는 하나의 프로세스 내부에 생성되기 때문에 하나의 스레드가 예외를 발생시키면 프로세스 자체가 종료될 수 있어 다른 스레드에 영향을 미친다.

 

 

메인 스레드 (main thread)

자바의 모든 애플리케이션은 메인스레드가 main() 메소드를 실행하면서 시작한다.

메인 스레드는 필요에 따라 작업 스레드들을 만들어서 병렬로 코드를 실행할 수 있다. 머티스레드를 생성해서 멀티 태스킹을 수행.

혼공자 책 참고

 

싱글 스레드 애플리케이션에서는 메인 스레드가 종료하면 프로세스도 종료 도니다.

하지만, 멀티 스레드 애플리케이션에서는 실행 중인 스레드가 하나라도 있으면, 프로세스는 종료 되지 않는다.

혼공자 책 참고

 

 

 

 

 

 

 

 

※용어 정리

  • 프로세스: 애플리케이션을 실행하면 운영체제로부터 실행에 필요한 메모리를 할당받아 애플리케이션이 실행되는 것이다.

  • 멀티 스레드: 하나의 프로세스 내에 동시 실행을 하는 스레드들이 2개 이상인 경우이다.

  • 메인 스레드: 자바의 모든 애플리케이션은 메인 스레드가 main()메소드를 싱행하면서 시작한다. 메인 스레드는 main() 메소드의 첫 코드부터 아래로 순차적으로 실행하고, main()메소드의 마지막 코드를 실행하거나 return문을 만나면 실행이 종료 된다.

 

본 내용은 #혼자공부하는자바 책을 참고해 공부하려 작성했습니다.

 

728x90
반응형

댓글