본문 바로가기

Java

프로세스(Process)와 쓰레드(Tread)

프로세스(Process)

 

실행중인 프로그램으로 CPU가 메모리 자원을 안정되게 분배해주어야 하고

운영체제의 성능에따라 성능이 결정됩니다.

 

 

쓰레드(Tread) 

 

프로세스 내에서 동시에 실행되는 실행단위로서

 

Runnable(인터페이스)로 선언되어 있는 클래스를 상속받거나

Thread 클래스를 상속받아 run() 메소드를 구현하여 사용합니다.

 

(멀티)쓰레드는 각자 스택 영역을 가지고 있으며 동일 프로세스내 전역메모리를 공유하기 때문에

CPU로부터 새로운 자원을 할당 받지 않아도 되기 때문에 실행속도가 빠릅니다.

 

but, 교착상태(DEADLACK)에 빠질 수 있습니다.

 

교착상태란 자원을 공유하기 때문에 특정 시간을 기다리고 있는 상태를 말합니다.

 

 

 

 

결국 계산기와 메모장처럼 서로 완전한 별개의 프로그램이라면 독립적인 프로세스를 구성해야겠지만,

서로 관련있는 기능들은 멀티 쓰레드로 구현하는 것이 효율적입니다.

 

 

728x90
반응형