JavaでスレッドIdを取得する

  1. JavaでThread.getId()を使用してスレッドIdを取得する
  2. JavaでThread.currentThread().getId()を使用して現在のスレッドプールIdを取得する

このチュートリアルでは、Javaでスレッドidを取得する方法を紹介します。 また、スレッドプールから現在のスレッドのidを取得する方法についても説明します。

スレッドを使用してスレッドIdを取得します。この例では、スレッドを実行するにはrun()メソッドが必要なため、Runnableクラスを実装するクラスTaskを作成しました。 Taskクラスはコンストラクターからスレッド名を受け取り、run()メソッドは実行時にコンソールに出力します。

main()メソッドでは、コンストラクタに二つのTaskオブジェクトを作成し、次に二つのthreadsオブジェクトを作成してtask1task2を渡してタスクを割り当てます。

thread1thread2を使用してstart()メソッドを呼び出してスレッドを実行します。 最後に、スレッドが実行されると、thread.getId()を使用して各スレッドのidを取得でき、idはlongとして返されます。

:

Thread1's ID is: 13Thread2's ID is: 14Executing Task 2Executing Task 1

Threadを使用して現在のスレッドプールIdを取得します。currentThread()を使用しています。javaのgetId()

スレッドプールは、タスクの重い実行になると有益です。 以下の例では、Executors.newFixedThreadPool(numberOfThreads)を使用してスレッドプールを作成します。 プールに必要なスレッドの数を指定できます。

Taskクラスはrun()メソッドでスレッドを実行します。 これは、コンストラクタで渡されたスレッドの名前を設定して取得する単純なクラスです。 複数のタスクを作成するには、forループを使用して、5つのtaskオブジェクトが作成され、プール内で5つのスレッドが実行されます。

私たちの目標は、現在実行されているすべてのスレッドのidを取得することです。 これを行うには、現在のスレッドのidを返すThread.currentThread().getId()を使用します。 出力では、個々のタスクを実行するすべてのスレッドのidを見ることができます。

タスクが完了したら、threadExecutor.shutdown()を使用してスレッドプールの実行を停止する必要があります。 !threadExecutor.isTerminated()threadExecutorが終了するまで待機するために使用されます。

:

Created Task: Task 0Created Task: Task 1Created Task: Task 2Created Task: Task 3Created Task: Task 4Executing: Task 0Executing: Task 2Executing: Task 1Executing: Task 4Executing: Task 3Task 0 is on thread id #13Task 1 is on thread id #14Task 4 is on thread id #17Task 2 is on thread id #15Task 3 is on thread id #16All threads have completed their tasks

関連記事-Javaスレッド

  • Javaでスレッドを強制終了
  • コメントを残す

    メールアドレスが公開されることはありません。