Java Virtual Thread 사용하는 방법

2025. 2. 3. 13:29·JVM/Java

안녕하세요. 이전 글에서 Java Virtual Thread에 대해서 알아보았습니다. 오늘은 가상 스레드를 실제로 사용하는 방법에 대해서 알아보겠습니다.

 

Java의 Virtual Thread에 대해서(JEP444)

안녕하세요. 오늘은 자바의 가상 스레드(Virtual Thread)에 대해서 알아보겠습니다. 이 가상 스레드는 JDK21에서 정식으로 추가된 기능입니다.기존 Thread의 한계 기존에 사용되던 자바의 스레드는 플

woodding.tistory.com

사용하는 방법은 간단합니다.

 

startVirtualThread()

Runnable runnable = () -> {
    try {
        Thread.sleep(10000);
        System.out.println(Thread.currentThread().threadId());
    } catch (InterruptedException e) {
        throw new RuntimeException(e);
    }
};

// 첫 번째 방법
Thread firstThread = Thread.startVirtualThread(runnable);

 

ofVirtual().start()

Runnable runnable = () -> {
    try {
        Thread.sleep(10000);
        System.out.println(Thread.currentThread().threadId());
    } catch (InterruptedException e) {
        throw new RuntimeException(e);
    }
};


// 두 번째 방법
Thread secondThread = Thread.ofVirtual().start(runnable);

 

ExecuterService 사용 

Runnable runnable = () -> {
    try {
        Thread.sleep(10000);
        System.out.println(Thread.currentThread().threadId());
    } catch (InterruptedException e) {
        throw new RuntimeException(e);
    }
};

// 세 번째 방법
try (ExecutorService executorService = Executors.newVirtualThreadPerTaskExecutor()) {
    for (int i = 0; i <5000; i++) {
        executorService.submit(runnable);
    }
}

 

마치며

이전 글에서 봤듯이 가상 스레드의 목표 중 하나가 "기존 java.lang.Thread API를 사용하는 코드에서도 최소한의 변경으로 virtual thread를 사용 가능하게 하자."입니다. 그래서 기존 스레드 사용 방법과 큰 차이가 없는 것을 볼 수 있습니다. 있다면 메서드명이 조금 달라진 정도입니다.

 

'JVM > Java' 카테고리의 다른 글

Java의 동기화(synchronized, wait(), notify())  (0) 2025.02.03
Java의 Virtual Thread에 대해서(JEP444)  (0) 2025.02.02
Java에서 MessageDigest를 이용해서 해시코드 생성하기 (SHA-256, SHA-512, MD5)  (0) 2025.02.02
'JVM/Java' 카테고리의 다른 글
  • Java의 동기화(synchronized, wait(), notify())
  • Java의 Virtual Thread에 대해서(JEP444)
  • Java에서 MessageDigest를 이용해서 해시코드 생성하기 (SHA-256, SHA-512, MD5)
우띵이
우띵이
코딩해요~
  • 우띵이
    ChODING
    우띵이
  • 전체
    오늘
    어제
    • 분류 전체보기 (11)
      • JVM (6)
        • Java (4)
        • Kotlin (2)
      • Python (4)
      • JavaScript (0)
      • Computer Science (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    java
    Metaclass
    Thread
    Virtual Thread
    spring security
    CS
    Spring
    complement
    synchronize
    kotlin
    hash
    WSGI
    Monitor
    Python
    computer science
    binary
    jdk21
    concurrency
    CORS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
우띵이
Java Virtual Thread 사용하는 방법
상단으로

티스토리툴바