1つのスレッドsleepの場合、他のスレッドは通常通り実行されます.
1434 ワード
public class SleepThread extends Thread{
@Override
public void run() {
try {
System.out.println("sleep start");
Thread.sleep(10000);
System.out.println("sleep end");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public class WakeThread extends Thread{
@Override
public void run() {
for(int i=0;i<10;i++){
try {
Thread.sleep(1000);
System.out.println("I am awake");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
public class ThreadTest {
/**
* @param args
*/
public static void main(String[] args) {
Thread t1=new SleepThread();
Thread t2=new WakeThread();
t1.start();
t2.start();
}
}
印刷
sleep start
I am awake
I am awake
I am awake
I am awake
I am awake
I am awake
I am awake
I am awake
I am awake
I am awake
sleep end
最後のI am awakeとsleep endはほぼ無間隔で出てきました.
これはsleepの時、自分でsleepを少し、他のスレッドを少し歩いて、自分でsleepを続けることができることを示しています.
両方を同時に行うことができることを意味します.