线程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();
}
}
}
}