线程类是本质上是程序执行线程的类。它存在于Java.lang包中。线程类包含Sleep()方法。线程类中存在两种Sleep()方法的重载方法,一种方法带有一个自变量,另一种方法带有两个自变量。 sleep()方法用于在特定时间段内停止执行当前线程(无论系统中正在执行的线程),并在该时间段结束后,较早执行的线程再次开始执行。
关于Thread.sleep()方法的要点:
- 方法每当执行Thread.sleep()函数时,它将始终暂停当前线程的执行。
- 如果其他任何线程在睡眠时中断,则将抛出InterruptedException。
- 如果系统忙, 那么线程实际进入睡眠的时间会更多 与过去相比呼唤睡眠方法以及的系统 负载少 然后实际睡觉时间的线程将接近那个在调用sleep()方法时传递。
Sleep()方法的语法
- public static void sleep(long millis)throws InterruptedException
- public static void sleep(long millis)throws IllegalArguementException
- public static void sleep(long millis, int nanos)throws InterruptedException
- public static void sleep(long millis, int nanos)throws IllegalArguementException
Thread.Sleep()方法中传递的参数
- millis:线程将休眠的持续时间(以毫秒为单位)
- nanos:这个是我们想要的额外时间(以纳秒为单位)的线程睡觉。 取值范围是0到999999。
Sleep()的返回类型方法:它不返回任何值,的IE的睡眠函数的返回类型为void。
具有一个参数的sleep方法是本机方法,即,该方法的实现是用另一种编程语言完成的,而具有两个参数的另一种方法不是本机方法,即,其实现是用Java完成的。这两个sleep方法都是静态的,即我们可以使用Thread类访问它们。两种方法都抛出一个检查异常,即我们可以使用throws关键字或使用try and catch块来处理异常。
我们可以对任何线程使用Thread.Sleep()方法,即可以与主线程或以编程方式创建的任何其他线程一起使用。
- 对主线程使用Thread.Sleep()方法
Java
// 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 foloowed 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
- 对自定义线程使用Thread.Sleep()方法
Java
// 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 foloowed 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();
}
}
输出
0 1 2 3 4
- 睡眠时间为负数时发生IllegalArguementException
Java
// 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 foloowed 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.lang.IllegalArgumentException:timeout value is negative
相关用法
- Java Java.util.Collections.rotate()用法及代码示例
- Java Java.util.Collections.disjoint()用法及代码示例
- Java Java lang.Long.lowestOneBit()用法及代码示例
- Java Java lang.Long.numberOfTrailingZeros()用法及代码示例
- Java Java lang.Long.numberOfLeadingZeros()用法及代码示例
- Java Java lang.Long.highestOneBit()用法及代码示例
- Java Java lang.Long.byteValue()用法及代码示例
- Java Java lang.Long.reverse()用法及代码示例
- Java Clock tickMinutes()用法及代码示例
- Java Clock withZone()用法及代码示例
- Java Java.util.Collections.frequency()用法及代码示例
- Java Java.util.Arrays.equals()用法及代码示例
注:本文由纯净天空筛选整理自lavishgarg26大神的英文原创作品 Thread.sleep() Method in Java With Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。