안녕하세요. 이전 글에서 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 |