Java 9のJShellでスレッドを作成・実行する方法を解説
JShellは、Java 9で導入された対話型のJavaシェルツールです。main()メソッドを宣言することなくコードスニペットをその場で実行でき、結果を即座に確認できるのが大きな特徴です。JShellはREPL(Read-Evaluate-Print Loop)と呼ばれる仕組みを採用しており、コマンドラインプロンプトから起動します。
JShellを使えば、変数、メソッド、クラス、スクラッチ変数、さらには外部ライブラリの読み込みまで、すべて対話的に行うことができます。小さなコードの動作確認や学習用途に非常に便利なツールです。
Threadクラスを継承してスレッドを作成する
以下のコードスニペットでは、Threadクラスを継承することでスレッドを作成しています。JShell上でクラスを定義すると、「created class ThreadTest」というメッセージが表示され、クラスが正常に登録されたことがわかります。
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」という文字列が出力されます。
jshell> new ThreadTest().run();
Thread in run() methodrun()とstart()の違いに注意
ここで一点注意したいのは、run()メソッドを直接呼び出した場合、新しいスレッドは作成されず、現在のスレッド上でそのまま処理が実行されるという点です。実際に別スレッドとして並行処理を行いたい場合は、start()メソッドを呼び出します。start()は内部で新しいスレッドを生成し、そのスレッドからrun()を呼び出してくれます。
このようにJShellを活用すれば、スレッドのようなマルチスレッド処理の基本動作も、main()メソッドを持つ完全なプログラムを用意することなく、手軽に試すことができます。
-
Androidでスレッドを作成する方法を徹底解説!初心者向けサンプルコード付き
Androidにおけるスレッドとは?スレッドとは、軽量なサブプロセスのことであり、UI(ユーザーインターフェース)を中断させることなくバックグラウンド処理を実行するために使用されます。Androidアプリ開発では、時間のかかる処理をメインスレッドから切り離すことで、アプリの応答性や操作性を維持することができます。本記事では、実際のサンプルコードを交えながら、Androidでスレッドを作成する方法をステップごとに分かりやすく解説します。手順1:Android Studioで新規プロジェクトを作成するまず、Android Studioを起動し、メニューから「File」→「New Project」を
-
Javaで一時ファイル(テンポラリファイル)を作成する方法
プログラムの実行中に、一時的な情報を保存するためにその場で一時ファイルを作成し、後から削除したいケースはよくあります。 Javaでは、Files.createTempFile() メソッドを使用することで、簡単に一時ファイルを作成できます。 一時ファイルの作成 次の例では、Files.createTempFile(prefix, suffix) を使って一時ファイルを作成しています。 import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; public class CreateTem