상세 컨텐츠

본문 제목

프로세스와 스레드

자바강좌

by somiyuralove 2019. 4. 25. 21:22

본문

프로세스(process)란 간단히 말해서 실행 중인 프로그램 입니다. 프로그램을 실행하면 OS로부터 실행에 필요한 자원(메모리)을 할당받아 프로세스가 됩니다.

프로세스는 프로그램을 수행하는 데 필요한 데이터와 메모리 등의 자원 그리고 쓰레드로 구성되어 있으며 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것이 바로 쓰레드입니다.

그래서 모든 프로세스에는 최소한 하나 이상의 쓰레드가 존재하며, 둘 이상의 쓰레드를 가진 프로세스를 멀티쓰레드 프로세스(multi-threaded process)라고 합니다.

* 멀티쓰레딩의 장점

1. CPU의 사용률을 향상

2. 자원을 보다 효율적으로 사용

3. 사용자에 대한 응답성 향상

4. 작업이 분리되어 코드가 간결

멀티쓰레딩에 장점만 있는 것은 아니며 멀티쓰레드 프로세스는 여러 쓰레드가 같은 프로세스 내에서 자원을 공유하면서 작업을 하기 때문에 발생할 수 있는 동기화, 교착상태와 같은 문제들을 고려해서 신중히 프로그래밍해야합니다.

쓰레드를 구현하는 방법은 Thread클래스를 상속하는 방법과 Runnable인터페이스를 구현하는 방법이 있습니다.

어느쪽으로 구현해도 상관없지만 Thread 클래스를 상속받으면 다른 클래스를 상속받을 수 없기때문에 Runnable 인터페이스를 구현하는것이 일반적이 방법입니다.

여기서 알아두어야 할것은 한번 사용한 쓰레드는 다시 사용할 수 없다는 것입니다.

그래서 쓰레드의 작업이 한 번 더 수행되기를 원한다면 새로운 쓰레드를 생성한 다음에 start()를 호출해야 합니다.

만일 하나의 쓰레드에 대해 start()를 두 번 이상 호출하면 실행시에 IllegalThreadStateException이 발생합니다.

 

이 포스트가 도움이 되셨다면 공감버튼을 눌러주세요.^^*

관련글 더보기

댓글 영역