Java
 Computer >> コンピューター >  >> プログラミング >> Java

スレッドがJavaで別のスレッドに割り込むにはどうすればよいですか?


「interrupt」関数をJavaで使用すると、例外InterruptedExceptionを使用してスレッドの実行を中断できます。

次の例は、現在実行中のスレッドが中断された後、(catchブロックで発生した新しい例外のために)実行を停止する方法を示しています-

public class Demo extends Thread
{
   public void run()
   {
      try
      {
         Thread.sleep(150);
         System.out.println("In the 'run' function inside try block");
      }
      catch (InterruptedException e)
      {
         throw new RuntimeException("The thread has been interrupted");
      }
   }
   public static void main(String args[])
   {
      Demo my_inst = new Demo();
      System.out.println("An instance of the Demo class has been created");
      my_inst.start();
      try
      {
         my_inst.interrupt();
      }
      catch (Exception e)
      {
         System.out.println("The exception has been handled");
      }
   }
}

出力

An instance of the Demo class has been created
Exception in thread "Thread-0" java.lang.RuntimeException: The thread has been interrupted
at Demo.run(Demo.java:12)

Demoという名前のクラスは、Threadクラスを拡張します。ここで、「try」ブロック内に、関数を150ミリ秒スリープさせる「run」という名前の関数が定義されています。 「catch」ブロックでは、例外がキャッチされ、関連するメッセージがコンソールに表示されます。

main関数では、Demoクラスのインスタンスが作成され、「start」関数を使用してスレッドが開始されます。 「try」ブロック内ではインスタンスが中断され、「catch」ブロック内では例外を示す関連メッセージが出力されます。


  1. 編集可能なJLabelをJavaで実装するにはどうすればよいですか?

    JLabel JLabel クラスはJComponentを拡張できます クラスとJLabelのオブジェクトは、 GUIに関するテキスト命令または情報を提供します 。 JLabel 1行の読み取り専用テキストを表示できます 、画像 または両方のテキスト および画像 。 JLabelの重要なメソッドは、 setText()、setIcon()、setBackground()、setOpaque()、setHorizo​​ntalAlignment()、setVerticalAlignment()です。 など JLabelは明示的にPropertyChangeListenerを生成

  2. JavaでJToggleButtonを実装するにはどうすればよいですか?

    JToggleButton JToggleButton AbstractButtonの拡張です また、オンに切り替えることができるボタンを表すために使用できます。 およびオフ 。 JToggleButtonの場合 を初めて押すと、押したままになり、2回押すと離すことができます。 JToggleButton ActionEventを生成します 押すたびに。 JToggleButton ItemEventを生成することもできます 、このイベントは、選択の概念をサポートするコンポーネントによって使用されます。 JToggleButtonの場合 を押すと選択されます。