线程的休眠

本文介绍了线程休眠的概念,其好处在于能控制线程执行顺序,通过sleep()方法实现。线程休眠后进入就绪状态,但不保证立即执行。通过示例代码展示了线程休眠在实践中的效果,强调了它在提高CPU使用效率和线程协调中的作用。
摘要由CSDN通过智能技术生成

线程的休眠

1:线程休眠的概念:
在当前线程的执行中,暂停指定的毫秒数,释放CPU的时间片
2:线程休眠的好处:
没有线程的休眠,我们无法控制多个线程的运行顺序,
当有休眠时,我们可以可控制线程的执行顺序,干涉CUP执行的时间,到达我们想要的目的
3:线程休眠的方法:
线程的休眠:
调用sleep(),sleep需要一个参数用于指定该线程休眠的时间,单位是毫秒,它通常是放在run()方法内的循环被使用
具体方法:

try{
Thread.sleep(休眠时间)}catch(InterruptedException e)
{
e.printStackTrace();
}

由于使用sleep()方法的执行可能会抛出异常,所以将sleep()方法放在try…catch中,
虽然使用了sleep()方法的线程在一段时间内会醒来,但是并不能保证它醒来后进入运行状态,只能保证他进入就绪状态。
下面我自己写了一段代码表达自己对睡眠的理解:

 package lianxi1;
class ch extends Thread
{
	public void  run()
	{
		for(int i=0;i<10;i++)
		  {
	      try {
                    Thread.sleep(4000);
      } catch (InterruptedException e) {
          e.printStackTrace();
      }
	  System.out.println(Thread.currentThread().getName()+"-->"+i);
		  }
	}
}
  class sleep {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Thread j=new ch();
		j.start();
		for(int i=0;i<5;i++)
		{
			  try {
		          Thread.sleep(2000);
		      } catch (InterruptedException e) {
		          e.printStackTrace();
		      }
			System.out.println(Thread.currentThread().getName()+"-->"+i);
		}
	}

}

这段代码的意思就是在主线程中对for语句进行休眠,休眠时间为2秒,在覆写run方法也对for
语句进行了休眠操作,休眠时长为4秒,可以看出主线程和调用j.start()的线程执行情况。
执行的结果如下所示:

main-->0
Thread-0-->0
main-->1
main-->2
Thread-0-->1
main-->3
main-->4
Thread-0-->2
//时间间隔4秒
Thread-0-->3
Thread-0-->4
Thread-0-->5
Thread-0-->6
Thread-0-->7
Thread-0-->8
Thread-0-->9

结果分析:因为main线程睡眠时间为j.start()线程的一半可以看出来执行两个main才会执行一个j.start(),
提高了对于cpu的使用效率。j.start()调用的线程每隔4秒才会执行一次,
希望这段代码会加深大家对于线程睡眠的理解吧,还有对于线程的使用,以及线程睡眠的优点都体现出来了。
谢谢观看!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值