sleep()
指定された時間スレッドをスリープさせるために使用されることを理解しています。2 つの例を作成しました。例 1 では、1 つしか作成していないため、、、、として出力され1
て2
います3
。4
例 2 では、スレッドの 2 つのインスタンスを作成し、出力, 1
, 1
, 2
, 2
,3
を3
取得しています。4
4
最初のスレッドの出力が1
, 2
,の後に 2 番目のスレッドの, 3
, でないのはなぜですか?4
1
2
3
4
例 1:
// Using sleep() method
public class Aaa extends Thread{
public void run(){
for(int i=1;i<5;i++){
try{
Thread.sleep(500);
} catch(InterruptedException e){
System.out.println(e);
}
System.out.println(i);
}
}
public static void main(String[] args){
Aaa m1=new Aaa();
m1.start();
}
}
Output:
1
2
3
4
例 2:
// Using sleep() method
public class Aaa extends Thread{
public void run(){
for(int i=1;i<5;i++){
try{
Thread.sleep(500); // sleeps thread
} catch(InterruptedException e){
System.out.println(e);
}
System.out.println(i);
}
}
public static void main(String[] args){
Aaa m1=new Aaa(); // creating one object
Aaa m2=new Aaa(); // creating second object of a class
m1.start(); // calls run method
m2.start();
}
}
Output:
1
1
2
2
3
3
4
4