睡眠;
等待;
因为需要一个对象的锁定而被阻塞。
1
、睡眠
Thread.sleep(long millis)和 Thread.sleep(long millis, int nanos)静态方法强制当前正在执行的
休眠(暂停
“
执行),以 减慢
睡眠时,它入睡在某个地方,在苏醒之前不会返回到可运行状态。当睡
眠时间到期,则返回到可运行状态。
执行太快,或者需要强制进入下一轮,因为 Java
规范不保证合理的轮换。
睡眠的实现:调用静态方法。
try {
Thread.sleep(123);
} catch (InterruptedException e) {
e.printStackTrace();
}
睡眠的位置:为了让其他
run()之内。这样才能保证
执行过程中会睡眠。
例如,在前面的例子中,将一个耗时的操作改为睡眠,以减慢
的执行。可以这么写:
public void run() {
for(int i = 0;i<5;i++){
// 很耗时的操作,用来减慢
的执行
// for(long k= 0; k <100000000;k++);
try {
Thread.sleep(3);
} catch (InterruptedException e) {
e.printStackTrace(); .
}
System.out.println(this.getName()+" :"+i);
}
}
运行结果:
阿三 :0
李四 :0
阿三 :1
阿三 :2
阿三 :3
李四 :1
李四 :2