12-1 멀티 스레드

지미미·2023년 4월 18일
0

Java

목록 보기
10/16
post-thumbnail

애플리케이션을 실행하면 운영체제로부터 실행에 필요한 메모리를 할당 받아 애플리케이션이 실행되는데, 이것을 프로세스(process)라고 한다. 그리고 프로세스 내부에서 코드의 실행 흐름을 스레드(thread)라고 한다.

프로세스

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

멀티 스레드

하나의 프로세스 내에 동시 실행을 하는 스레드들이 2개 이상인 경우를 말한다.

메인 스레드

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

작업 스레드

메인 작업 이외에 병렬 작업의 수만큼 생성하는 스레드를 말한다. 작업 스레드도 객체로 생성되기 때문에 클래스가 필요하다. Thread 클래스를 직접 객체화해서 생성할 수도 있고, Thread 클래스를 상속해서 하위 클래스를 만들어 생성할 수도 있다.

동기화 메소드

멀티 스레드 프로그램에서 단 하나의 스레드만 실행할 수 있는 코드 영역을 임계 영역(critical section)이라고 한다. 자바는 임계 영역을 지정하기 위해 동기화(synchronized) 메소드를 제공한다. 스레드가 객체 내부의 동기화 메소드를 실행하면 즉시 객체에 잠금을 걸어 다른 스레드가 동기화 메소드를 실행하지 못하도록 한다.

profile
블루라이트로 광합성 하는 새럼

0개의 댓글