>frhyme.code
•java

Java - MultiThreading - Thread Basic

Java - MultiThreading - Threads

  • java는 기본적으로 JVM 레벨에서 Multi Thread를 지원합니다. 사실 우리가 main이라는 이름으로 돌리는 코드가 이미 JVM에서 알아서 인식해서 만들어내는 Thread인 거죠. 물론 그 외에도 GC(Garbage Collector)도 기본적으로 생성되는 Thread죠.
  • Java에서 현재 실행되고 있는 Thread에 접근하여, 기본적인 정보들을 찾는 방법을 정리하였습니다.
    • Thread.currentThread(): 현재 Thread를 가져옵니다.
    • .getPriority(): 현재 Thread의 우선순위를 파악합니다.
    • .isAlive(): Thread가 살아ㅣ 있는지 확인합니다.
    • .isDaemon(): 현재 Thread가 daemon인지 확인합니다. Daemon은 UNIX 용어에서 온 말인데, Garbarge Collection처럼 낮은 우선순위를 가지지만 BackGround에서 계속 돌아가는 Thread를 말하죠.보통 NonDaemon 쓰레드들은 Daemon 쓰레드들이 존재할 때만 존재합니다. 가령 Daemon Thread가 없는데, GC같은 게 있는건 아무 의미가 없으니까요.
import java.lang.*;

public class Main {

    public static void main(String[] args) throws Exception {
        // main Thread
        // .currentThread():
        // 현재 실행되고 있는 Thread를 찾습니다.
        Thread thrd = Thread.currentThread();

        System.out.println("---------------------------------");
        System.out.println("thrd.getId(): " + thrd.getId());
        System.out.println("thrd.getName(): " + thrd.getName());
        // .getPriority(): 현재 Thread의 우선순위를 파악합니다.
        // 우선순위가 높으면, 낮은 Thread에 비해서 먼저 실행되죠.
        System.out.println("thrd.getPriority(): " + thrd.getPriority());
        // .isAlive(): Thread가 아직 살아 있는지 확인합니다.
        System.out.println("thrd.isAlive(): " + thrd.isAlive());
        // isDaemon(): 현재 Thread가 daemon인지 확인합니다.
        // Daemon은 UNIX 용어에서 온 말인데, Garbarge Collection처럼 낮은 우선순위를 가지지만,
        // BackGround에서 계속 돌아가는 Thread를 말하죠.
        // 보통 NonDaemon 쓰레드들은 Daemon 쓰레드들이 존재할 때만 존재합니다.
        // 가령 Daemon Thread가 없는데, GC같은 게 있는건 아무 의미가 없으니까요.
        System.out.println("thrd.isDaemon(): " + thrd.isDaemon());
        System.out.println("---------------------------------");
    }
}