Java并发编程示例(五):线程休眠与恢复是介绍Java多线程中线程休眠和恢复的教程。以下是完整攻略。
线程休眠与恢复
在Java多线程中,线程的休眠和恢复是两个比较重要的概念。休眠是暂停线程的执行,一定时间后再恢复执行;而恢复就是让线程继续执行。
Java提供了Thread.sleep()方法来实现线程的休眠,其中参数单位是毫秒。当线程处于休眠状态时,它不会占用CPU时间,其他线程和进程仍然可以在CPU上执行。
try {
Thread.sleep(1000); // 休眠1秒钟
} catch (InterruptedException e) {
// 异常处理
}
上述代码中,Thread.sleep(1000)会让线程休眠1秒钟。注意,这里的sleep()方法会抛出InterruptedException异常,需要进行处理。
如果线程需要在一定时间后继续执行,可以使用Thread类的join()方法来实现。在调用join()方法时,线程将会等待指定的时间,然后再继续执行。
Thread t1 = new Thread(new Runnable() {
public void run() {
// 线程执行的代码
}
});
t1.start(); // 启动t1线程
try {
t1.join(); // 等待t1线程执行完毕
} catch (InterruptedException e) {
// 异常处理
}
上述代码中,t1.join()表示当前线程等待t1线程执行完毕后再继续执行。
示例说明
示例1:线程休眠
下面是一个线程休眠的示例。
public class SleepDemo extends Thread {
public void run() {
long startTime = System.currentTimeMillis();
// 线程休眠1秒钟
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
long endTime = System.currentTimeMillis();
System.out.println("线程执行时间:" + (endTime - startTime) + "毫秒");
}
}
public class SleepDemoTest {
public static void main(String[] args) {
SleepDemo t = new SleepDemo();
t.start(); // 启动线程
}
}
上述示例中,SleepDemo继承自Thread类,重写了run()方法。在run()方法中,使用Thread.sleep()方法使线程休眠1秒钟,然后计算线程执行时间。
执行SleepDemoTest类的main()方法后,会启动一个线程,该线程会休眠1秒钟后再输出执行时间。
示例2:线程恢复
下面是一个线程恢复的示例。
public class JoinDemo extends Thread {
public void run() {
System.out.println("线程开始执行...");
// 线程休眠2秒钟
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("线程执行完毕。");
}
}
public class JoinDemoTest {
public static void main(String[] args) {
JoinDemo t = new JoinDemo();
t.start(); // 启动线程
System.out.println("等待线程执行完毕...");
try {
t.join(); // 等待线程执行完毕
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("线程执行完毕。");
}
}
上述示例中,JoinDemo继承自Thread类,重写了run()方法。在run()方法中,使用Thread.sleep()方法使线程休眠2秒钟,然后输出"线程执行完毕"。
执行JoinDemoTest类的main()方法后,会启动一个线程,该线程会休眠2秒钟后再输出"线程执行完毕"。同时,main()方法中调用了t.join()方法,使当前线程等待t线程执行完毕后再输出"线程执行完毕"。
结论
线程休眠和恢复对于多线程编程是非常有用的。当我们需要让线程在一定时间内暂停执行时,可以使用线程休眠;当我们需要让当前线程等待其他线程执行完毕后再继续执行时,可以使用join()方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java并发编程示例(五):线程休眠与恢复 - Python技术站