클래스를 하나 수행시키거나 WAS를 기동하면, 서버에 자바 프로세스가 하나 이상 생성된다.
하나의 프로세스에는 하나의 이상의 스레드가 생성된다.
그러므로 프로세스와 스레드의 관계는 1 : 多 관계이다.
왜 1 : 多 관계일까?
스레드는 다른 말로 Lightweight Process(LWP)라고도 한다. 즉 가벼운 프로세스이고 프로세스에서 만들어 사용하고 있는 메모리를 공유한다. 그래서 별개의 프로세스가 하나씩 뜨는 것보다는 성능이나 자원 사용에 있어서 많은 도움이 된다.
스레드의 구현 방법
- Thread 클래스 상속
- Runnable 인터페이스 구현
Thread 클래스가 Runnable 인터페이스를 구현하고 있기 때문에 어느 것을 사용해도 거의 차이가 없다.
대신 Runnable 인터페이스를 구현하면 원하는 기능을 추가할 수 있다.
이는 장점이 될 수 있지만 해당 클래스를 수행할 때 별도의 스레드 객체를 생성해야 한다는 점은 단점이 될 수 있다.
자바는 다중 상속을 허용하지 않기 때문에 이미 다른 객체를 상속했다면
Thread 클래스를 상속하지 못하게 되고 Runnable 인터페이스를 구현해야 한다.
'Java' 카테고리의 다른 글
Reflection API에 대해 간단히 알아보자. (1) | 2020.07.16 |
---|---|
String 클래스는 신중히 사용하자. (4) | 2020.06.11 |
디미터 법칙(Law of Demeter) (0) | 2020.05.22 |
상속보다는 조합(Composition)을 사용하자. (0) | 2020.05.14 |
정규식 간단 정리 (0) | 2020.05.11 |