0
0

Java21で正式リリースの Virtual Thread を使ってみた(その1)

Last updated at Posted at 2024-02-03

Java19でプレビュー、Java21で正式リリースとなった Virtual Thread(仮想スレッド)を使ってみた。ラムダ式とやらは使ったことないので、理解の複雑化回避のためあえて使わずに。

ThreadExecutor.java
package pkg;

public class ThreadExecutor {
	
	public static void main(String[] args) throws InterruptedException {

		MyRunnable runnable = new MyRunnable();
		
		// プラットフォームスレッドとして実行する場合(従来からのスレッド)
		Thread pthread = Thread.ofPlatform().start(runnable);
		System.out.println("pthread is Virtual ? : " + pthread.isVirtual());
		// なんとなく、スレッドが終了するまで待つ
		pthread.join();
		
		// 仮想スレッドとして実行する場合(新しいスレッド)
		Thread vthread = Thread.ofVirtual().start(runnable);
		System.out.println("vthread is Virthal ? : " + vthread.isVirtual());
		// なんとなく、スレッドが終了するまで待つ
		vthread.join();
	}
}

/**
 * スレッドで実行したい処理
 */
class MyRunnable implements Runnable {

	@Override
	public void run() {
		System.out.println("--> I am Thread. I am Virtual ? : "
			+ Thread.currentThread().isVirtual());
	}
}
実行結果
C:\>java -version
java version "21" 2023-09-19 LTS
Java(TM) SE Runtime Environment (build 21+35-LTS-2513)
Java HotSpot(TM) 64-Bit Server VM (build 21+35-LTS-2513, mixed mode, sharing)

C:\>java pkg\ThreadExecutor.java
pthread is Virtual ? : false
--> I am Thread. I am Virtual ? : false
vthread is Virthal ? : true
--> I am Thread. I am Virtual ? : true

なるほど。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0