初学线程休眠和礼让

线程休眠,sleep()

1、休眠可以使一个线程暂缓处理,休眠时间一到程序就会唤醒继续执行,在Thread类中定义的休眠方法如下:

休眠方法一:public static void sleep(long millis) throws
InterruptedException; 休眠方法二:public static void sleep(long millis,int
nanos) throws InterruptedException;
2、在进行休眠的时候有可能会产生中断异常“InterruptedException”,中断异常属于Excepton的子类。

//模拟倒计时
public class textsleep {
    public static void main(String[] args) {
        try {
            TextDown();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
    //模拟计时器
    public static void TextDown() throws InterruptedException {
        int num = 10;
        while (true){
            Thread.sleep(1000);//sleep会有异常,这里可以抛出异常
            System.out.println(num--);
            if(num<=0){
                break;
            }
        }
    }
}

进行倒计时
在这里插入图片描述

线程礼让,yield()

1、线程礼让指的是先将资源让出去让别的线程先执行,但每次礼让执行的时候只礼让一次。使用Thread类中的yield()方法
2.线程礼让不一定成功,需要看cpu调度

public class TextYield {
    public static void main(String[] args) {
        MyYield myYield = new MyYield();
        new Thread(myYield,"线程1").start();
        new Thread(myYield,"线程2").start();
    }

}
//线程礼让
 class MyYield implements Runnable{
    @Override
    public void run() {
        //获取线程名字
        System.out.println(Thread.currentThread().getName()+"开始执行");
        Thread.yield();//线程礼让 不一定成功,看cpu调度
        System.out.println(Thread.currentThread().getName()+"结束");
    }
}

在这里插入图片描述
如果没有线程礼让,那么在执行线程开始接着就是线性结束,这里线程礼让成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值