개요 Java19에서 Virtual Thread가 얼리억세스로 포함되었습니다. Java21에서는 Virtual Thread를 정식 기능으로 포함시켰습니다. Virtual Thread는 경량 스레드 모델입니다. 비슷한 모델로는 Go의 goroutine, Kotlin의 coroutine 등이 있습니다. Kotlin의 coroutine이 2017년 추가된 기능임을 감안하면, 6년이나 걸렸다는 것을 알 수 있습니다. 하지만 Virtual Thread가 Java21에 추가되며, 선택지가 하나 더 생겼습니다. 새로 서비스를 개발하는 입장에서는 Java + coroutine보다는 Only Java로 개발할 수 있을 것입니다. SpringBoot 3.2버전부터 Virtual Thread를 정식으로 지원하기 시작했습니다..
개요 JVM은 하나의 프로세스로 실행되고, 여러 개의 Thread를 실행할 수 있는 환경을 갖춥니다. 또 우리가 만든 자바 프로그램을 실행하고, main thread를 생성하고, 코드를 실행합니다. JAVA에서 Thread를 사용하는 대표적인 2가지 방법이 있습니다. Thread Class를 사용하는 방법과 Runnable Interface를 사용하는 방법이 바로 그것입니다. Thread 사용하기 public class Thread { public static void main(String[] args) { Thread thread1 = new ExampleThread(); Thread thread2 = new Thread(new ExampleRunnable()); thread1.start(); thre..
개요 학부 강의를 듣거나 프로젝트를 수행하며 Process, Thread라는 단어를 들을 기회는 정말 많을 것입니다. 개발자 필수 지식이기도 하고, 이들에 대한 이론적인 지식을 배워왔을 것이기도 합니다. 간단히 말해서, Process는 프로그램이 실행되는 단위, Thread는 작업 실행 단위입니다. 우리가 java로 프로그램을 만들어 실행한다면 그것은 Process로 동작할 것입니다. 해당 프로그램의 main메서드에서 구구단을 계산하는 함수를 실행한다면, 이것은 Thread로 동작할 것입니다. 개발을 하며 Process와 Thread 둘 중 하나를 이용해 다중 작업을 진행해야 한다면, Thread를 선택하는 것이 좋은 경우가 많습니다. Process가 필요로 하는 자원보다 Thread가 필요로 하는 자원..