JShell이란 무엇인가?
JShell은 Java 9에서 새롭게 도입된 대화형(인터랙티브) Java 셸 도구입니다. 기존 Java 프로그램처럼 main() 메서드를 선언하지 않고도 코드 조각(snippet)을 즉시 실행하고 그 결과를 바로 확인할 수 있다는 점이 가장 큰 특징입니다.
JShell은 REPL(Read-Evaluate-Print Loop), 즉 '읽기-평가-출력'을 반복하는 도구로, 명령줄(command-line) 프롬프트에서 실행됩니다. JShell을 활용하면 변수, 메서드, 클래스, 스크래치 변수(scratch variables), 외부 라이브러리 등을 간편하게 생성하고 테스트할 수 있어 학습과 프로토타이핑에 매우 유용합니다.
Thread 클래스를 상속하여 스레드 생성하기
다음 코드 예제는 Thread 클래스를 상속받아 스레드를 생성하는 과정을 보여줍니다. JShell 세션 내에서 클래스를 정의하면 별도의 컴파일 과정 없이 바로 사용할 수 있습니다.
C:\Users\User>jshell
| Welcome to JShell -- Version 9.0.4
| For an introduction type: /help intro
jshell> class ThreadTest extends Thread {
...> public void run() {
...> System.out.println("Thread in run() method");
...> }
...> public static void main(String args[]) {
...> ThreadTest t = new ThreadTest();
...> t.start();
...> }
...> }
| created class ThreadTest스레드 실행 및 결과 확인
클래스가 정상적으로 생성되었다면, 아래와 같이 인스턴스를 만들어 스레드를 실행할 수 있습니다. 코드를 실행하면 콘솔에 "Thread in run() method"라는 출력 결과가 표시되며, 이는 run() 메서드가 정상적으로 호출되었음을 의미합니다.
jshell> new ThreadTest().run(); Thread in run() method
이처럼 JShell을 사용하면 전체 프로그램을 작성하지 않고도 스레드 동작을 빠르게 실험하고 검증할 수 있어, 멀티스레딩 개념을 학습할 때 특히 효과적입니다.