Java Thread

EXEM Knowledge Base

Jump to: navigation, 찾기

목차

[편집] 개요

[편집] Sun JVM

[편집] Green Thread

JDK 1.2 이전 까지는 Green Thread를 제공했었다. Green Thread는 OS가 제공하는 Native Thread와 무관하게 순수하게 Java로 구현된 Thread를 의미한다. 초기 버전의 Java에서 호환성을 위해 고안되었지만, 이 후 성능 개선을 위해 Native Thread를 사용하능 방식이 채택되면서 Green Thread는 이제 더 이상 사용되지 않는다.

[편집] Native Thread

JDK 1.2 부터는 Java Thread는 OS가 제공하는 Native Thread를 이용해서 구현된다. Java Thread와 OS Thread의 매핑 방식은 Java 버전과 OS 종류 및 버전에 따라 다르다. 예를 들어 보면 다음과 같다.

  1. Linux에서는 1) Kernel 2.6 이전 버전에서는 LWP(Light Weight Process)를 이용해 Thread를 구현한다. 2) Kernel 2.6 버전부터는 NPTL(Native Posix Threading Library)을 이용해 Thread를 구현한다. LWP 방식을 사용할 경우(Kernel < 2.6) 하나의 Java Thread가 하나의 Java Process로 관찰된다. 따라서 Multi-threaded Java Application을 구동할 경우 수십 개 ~ 수백 개 이상의 Java Process가 구동된 것으로 보일 수 있다.
  2. Solaris에서는 Java Thread와 OS Thread는 1:1이며 OS Thread와 Kernel Thread의 관계는 OS 버전에 따라 다르다. 1) Solaris 8에서는 M:N 매핑을 사용하며, 2) Solaris 9에서는 Alternate Thread Library에 기반한 1:1 매핑을 사용한다.

[편집] IBM JVM

[편집] 외부 참조

  1. Java & Solaris Threading Model
  2. Solaris와 Linux의 Java Threading Model
  3. Solaris(8) Alternate Thread Library