logo

Java の Thread.sleep() メソッドと例

スレッド クラスは、基本的にプログラムを実行するスレッドであるクラスです。これは Java.lang パッケージに存在します。 Thread クラスには、 寝る() 方法。 Thread クラスには Sleep() メソッドのオーバーロードされたメソッドが 2 つあり、1 つは 1 つの引数を持ち、もう 1 つは 2 つの引数を持ちます。 sleep() メソッドは、現在のスレッド (システム内で実行中のスレッド) の実行を特定の期間停止するために使用され、その期間が経過すると、以前に実行していたスレッドが再び実行を開始します。

Thread.sleep() メソッドに関する重要な点:



  • メソッド Thread.sleep() 関数が実行されると、常に現在のスレッドの実行が一時停止されます。
  • スレッドがスリープしているときに他のスレッドが割り込むと、InterruptedException がスローされます。
  • システムがビジーな場合、スレッドが実際にスリープする時間は、sleep メソッドの呼び出し中に経過した時間よりも長くなります。システムの負荷が低い場合、スレッドの実際のスリープ時間は、sleep メソッドの呼び出し中に経過した時間に近くなります。 sleep() メソッドを呼び出します。

Sleep() メソッドの構文

Java スレッドの sleep() メソッドには 4 つのバリエーションがあります。これらは:

 1.  public static void sleep(long millis)throws InterruptedException 2.  public static void sleep(long millis)throws IllegalArguementException 3.  public static void sleep(long millis, int nanos)throws InterruptedException 4.  public static void sleep(long millis, int nanos)throws IllegalArguementException>

Thread.Sleep() メソッドで渡されるパラメータ



    millis: スレッドがスリープする時間 (ミリ秒) nanos: これは、スレッドがスリープする追加の時間 (ナノ秒) です。範囲は 0 ~ 999999 です。

Sleep() メソッドの戻り値の型: これは値を返しません。つまり、sleep 関数の戻り値の型は void です。

1 つのパラメーターを持つ sleep メソッドはネイティブ メソッドです。つまり、このメソッドの実装は別のプログラミング言語で行われ、2 つのパラメーターを持つもう 1 つのメソッドはネイティブ メソッドではありません。つまり、その実装は Java で行われます。どちらのスリープ メソッドも静的です。つまり、Thread クラスを使用してアクセスできます。どちらのメソッドもチェックされた例外をスローします。つまり、 throws キーワードを使用するか、try および catch ブロックを使用して例外を処理できます。

Thread.Sleep() メソッドは任意のスレッドで使用できます。つまり、メイン スレッドまたはプログラムで作成した他のスレッドで実行できます。



1. メインスレッドに Thread.Sleep() メソッドを使用する

ジャワ

Pythonで




// Java Program for sleeping the main thread.> import> java.io.*;> import> java.lang.Thread;> class> GFG {> >public> static> void> main(String[] args)> >{> >// we can also use throws keyword followed by> >// exception name for throwing the exception> > >try> {> >for> (>int> i =>0>; i <>5>; i++) {> > >// it will sleep the main thread for 1 sec> >// ,each time the for loop runs> >Thread.sleep(>1000>);> > >// printing the value of the variable> >System.out.println(i);> >}> >}> >catch> (Exception e) {> > >// catching the exception> >System.out.println(e);> >}> >}> }>

ウルフィ・ジャベド

>

>

出力

0 1 2 3 4>

2. カスタム スレッドに Thread.Sleep() メソッドを使用する

ジャワ




// Java Program for sleeping the custom thread.> import> java.io.*;> import> java.lang.Thread;> class> GFG>extends> Thread {> >public> void> run()> >{> >// thread 0> >// we can also use throws keyword followed by> >// exception name for throwing the exception> >try> {> >for> (>int> i =>0>; i <>5>; i++) {> > >// it will sleep the main thread for 1 sec> >// ,each time the for loop runs> >Thread.sleep(>1000>);> > >// This Thread.sleep() method will sleep the> >// thread 0.> >// printing the value of the variable> >System.out.println(i);> >}> >}> >catch> (Exception e) {> > >// catching the exception> >System.out.println(e);> >}> >}> >public> static> void> main(String[] args)> >{> >// main thread> >GFG obj =>new> GFG();> >obj.start();> >}> }>

>

>

typescript foreach
出力

0 1 2 3 4>

3. スリープ時間が負の場合の IllegalArgumentException

ジャワ




// Java Program for showing how exception can occur if we> // pass the negative timeout value.> import> java.io.*;> import> java.lang.Thread;> class> GFG {> >public> static> void> main(String[] args)> >{> >// we can also use throws keyword followed by> >// exception name for throwing the exception> > >try> {> >for> (>int> i =>0>; i <>5>; i++) {> > >// this will throw the> >// IllegalArgumentException> >Thread.sleep(->100>);> > >// printing the value of the variable> >System.out.println(i);> >}> >}> >catch> (Exception e) {> > >// catching the exception> >System.out.println(e);> >}> >}> }>

>

Javaでファイルを開く方法

>

出力

java.lang.IllegalArgumentException: timeout value is negative>