停止线程:
不推荐使用stop()、destroy()方法。已弃用。
推荐让线程自己停下来。
推荐使用一个标志位进行终止变量,当flag = false,则终止线程运行。
public class Demo01 implements Runnable{
private boolean flag=true;
@Override
public void run() {
while(flag){
System.out.println("I is "+Thread.currentThread().getName());
}
}
public void stop(){
this.flag = false;
}
}
线程休眠 sleep()
sleep存在异常 InterruptedException;
sleep时间达到后进入就绪状态。
sleep可以模拟网络延时倒计时等。用以放大问题的发生性。
每一个对象都有一个锁,sleep不会释放锁。
Thread.sleep(1000);
static void | sleep(long millis) 使当前正在执行的线程以指定的毫秒数暂停(暂时停止执行),具体取决于系统定时器和调度程序的精度和准确性。 |
static void | sleep(long millis, int nanos) 导致正在执行的线程以指定的毫秒数加上指定的纳秒数来暂停(临时停止执行),这取决于系统定时器和调度器的精度和准确性。 |