Day13_65_线程sleep()方法

线程sleep()方法

* public static void sleep​(long millis) throws InterruptedException 

* Thread.sleep(),该方法的作用是在指定的毫秒数内让当前 “正在执行的线程” 休眠(暂停执行)。这个“正在执行的线程”是指 this.currentThread() 返回的线程。

* sleep方法不会放弃 monitor 锁的所有权,但会释放CPU资源。

* TimeUnit 枚举类

* 代码




```
  package com.shige.Thread;

  import java.util.concurrent.TimeUnit;

  /*
   线程对象.sleep(毫秒); 阻塞当前线程,让线程进入阻塞状态,腾出CPU时间片让给其他线程
   */
  public class ThreadTest05 {
      public static void main(String[] args) throws InterruptedException {

          // 创建线程对象1
           Thread thread=new Thread(new Processor_05());
           thread.setName("线程1");

          // 创建线程对象2
          Thread thread1=new Thread(new Processor_05());
          thread1.setName("线程2");

          //启动线程
          thread.start();

          thread1.start();


          for (int i = 0; i <11 ; i++) {
              System.out.println(Thread.currentThread().getName()+"----->"+i);

              //阻塞主线程
              //TimeUnit枚举类
              TimeUnit.NANOSECONDS.sleep(1000);  //纳秒
              TimeUnit.MICROSECONDS.sleep(1000);//微秒
              TimeUnit.MILLISECONDS.sleep(1000); //毫秒
              //TimeUnit.SECONDS.sleep(1); //秒
              //TimeUnit.MINUTES.sleep(1);//分钟
              //TimeUnit.HOURS.sleep(1);//小时
              //TimeUnit.DAYS.sleep(1); //天


          }

      }
  }

  class Processor_05 implements  Runnable{

      //被重写的方法不能抛出异常,所以重写run()中的异常只能用try..catch
      @Override
      public void run() {
          for (int i = 0; i <11 ; i++) {

              System.out.println(Thread.currentThread().getName()+"----->"+i);
              try {
                  Thread.sleep(1000);
              } catch (InterruptedException e) {
                  e.printStackTrace();
              }
          }

      }
  }
上一篇:统计其中26个字母各自的出现次数并输出结果。


下一篇:加州65短格式警告标签被修改和限制使用的内容是怎么样的