Java线程休眠:sleep()方法用法

本文通过一个实例详细介绍了Java中如何使用Thread.sleep(long millis)方法让线程休眠,以实现线程间的交替执行。在示例中,主线程和SleepThread线程在特定条件下降睡眠,展示了如何控制线程执行的顺序和时机。同时,代码中展示了如何处理InterruptedException。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

线程的优先级是优先级高的程序会先执行,而优先级低的程序会后执行。如果希望人为地控制线程,使正在执行的线程暂停,将CPU让给别的线程,这时可以使用静态方法sleep(long millis),该方法可以让当前正在执行的线程暂停一段时间,进入休眠等待状态。当前线程调用sleep(long millis)方法后,在指定时间(单位毫秒)内该线程是不会执行的,这样其他的线程就可以得以执行了。

sleep(long millis)方法声明会抛出InterrupledException异常,因此在调用该方法时应该捕获异常,或者声明抛出该异常。下面通过一个案例来演示sleep(long millis)方法在程序中的使用。

public class Example02{
    public static void main(String[] args)throws Exception{
        //创建一个线程
        new Thread(new SleepThread()).start();
        for(int i=1;i<=10;i++){
            if(i == 5){
                Thread.sleep(2000);     //当前线程休眠2秒
            }
            System.out.println("主线程正在输出:"+i);
            Thread.sleep (500);     //当前线程休眠500毫秒
        }
    }
}

// 定义SleepThread类实现Runnable接口
class SleepThread implements Runnable{
    public void run(){
        for (int i=1;i<=10; i++){
            if(i ==3){
                try {
                    Thread.sleep(2000);//当前线程休眠2秒
                }catch(InterruptedException e){
                    e.printStackTrace();
                }
            }
            System.out.println("SleepThread线程正在输出:"+i);
            try{
                Thread.sleep(500); //当前线程休眠500毫秒
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    }
}

上面代码运行结果如下图所示。

线程休眠sleep案例

代码中第15~31行代码定义了一个SleepThread类并实现了Runnable接口。在SleepThread类中重写了run()方法,run()方法中使用for循环打印线程输出语句;第26~30行代码使用sleep()方法设置线程休眠500毫秒;在第18~24行代码中使用if判断当变量i=3时,线程休眠2000毫秒;第4行中使用new关键词创建了一个SleepThread线程并启动;在第5~12行代码中使用for循环打印主线程的输出语句,并在第10行代码使用sleep()方法设置线程休眠500毫秒;在第6~8行代码中使用if判新出当变量i=5时,线程休眠2000毫秒。

本文转自:黑马程序员java开发培训课程 http://java.itheima.com

 相关文章:

Java线程的生命周期包括哪几种状态?

Java线程优先级:Thread类的优先级常量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值