본문 바로가기

Java

프로세스와 스레드 간단한 개념 정리

클래스를 하나 수행시키거나 WAS를 기동하면, 서버에 자바 프로세스가 하나 이상 생성된다.

하나의 프로세스에는 하나의 이상의 스레드가 생성된다.

그러므로 프로세스와 스레드의 관계는 1 : 多 관계이다.

왜 1 : 多 관계일까?

스레드는 다른 말로 Lightweight Process(LWP)라고도 한다. 즉 가벼운 프로세스이고 프로세스에서 만들어 사용하고 있는 메모리를 공유한다. 그래서 별개의 프로세스가 하나씩 뜨는 것보다는 성능이나 자원 사용에 있어서 많은 도움이 된다.

스레드의 구현 방법

  1. Thread 클래스 상속
  2. Runnable 인터페이스 구현

Thread 클래스가 Runnable 인터페이스를 구현하고 있기 때문에 어느 것을 사용해도 거의 차이가 없다.

대신 Runnable 인터페이스를 구현하면 원하는 기능을 추가할 수 있다.
이는 장점이 될 수 있지만 해당 클래스를 수행할 때 별도의 스레드 객체를 생성해야 한다는 점은 단점이 될 수 있다.

자바는 다중 상속을 허용하지 않기 때문에 이미 다른 객체를 상속했다면
Thread 클래스를 상속하지 못하게 되고 Runnable 인터페이스를 구현해야 한다.