class Playground { public static void main(String[ ] args) { SubThread sub = new SubThread(); Thread thread = new Thread(sub) thread.start(); } } class SubSthread implement Runnable{ public void run(){ } }
うまく動きません。。
class Playground {
public static void main(String[ ] args) {
SubThread sub = new SubThread();
Thread thread = new Thread(sub);
thread.start();
for(int i = 0; i < 10; i++){
System.out.println("Lets go cletic");
try{
Thread.sleep(300);
} catch(InterruptedException e){
}
}
}
}
class SubThread implements Runnable{
public void run(){
for(int i = 0; i < 10; i++){
System.out.println("cleveland");
try {
Thread.sleep(500);
} catch(InterruptedException e){
}
}
}
}
[/java]
500msごとに、他のclassで実行しています。
Lets go cletic
cleveland
Lets go cletic
cleveland
Lets go cletic
Lets go cletic
cleveland
Lets go cletic
cleveland
Lets go cletic
Lets go cletic
cleveland
Lets go cletic
Lets go cletic
cleveland
Lets go cletic
cleveland
cleveland
cleveland
cleveland
>Javaのクラスは1つのクラスの子クラスにしかなれない制約がある
これに関係していることか?
う~ん、これだと駄目ですね。。
class RacingCar implements Runnable {
private int number = 0;
private static int round = 5;
private static String[] printOffset = {“”, “\t\t\t”,”\t\t\t\t\t\t”};
public RacingCar(int number){
this.number = number;
}
public void run(){
for(int i = 1; i <= round; i++){
try {
Thread.sleep((long)(Math.random()* 1000));
} catch(InterruptedException e){
e.printStackTrace();
}
System.out.println(printOffset[number-1] + this.number+"号車"+i+"周目通過");
}
System.out.println(printOffset[number-1]+ this.number + "号車GOAL!!");
}
}
[/java]
プログラムの実行状態をスレッドといい、全てのプログラムはスレッドによって実行される。javaコマンドが実行されると、JVMは新しいスレッドを作成し、そのスレッドによって指定したクラスのmainメソッドが実行される。mainメソッドの実行が終了するとスレッドは消滅する。