スレッドを使用した簡単なテストがあります:
package Thread;
class Sum extends Thread {
int low, up, S;
public Sum(int a, int b) {
low = a;
up = b;
S = 0;
System.out.println("This is Thread " + this.getId());
}
@Override
public void run() {
for (int i = low; i < up; i++) {
S += i;
}
System.out.println(this.getId() + ":" + S);
}
}
public class Tester {
public static void main(String agrs[]) {
Sum T1 = new Sum(1, 100);
T1.start();
Sum T2 = new Sum(10, 100);
T2.start();
System.out.println("Main process terminated");
}
}
しかし、いつrun()メソッドが実行されたのかわかりません。同じものを返します:
This is Thread 8
This is Thread 9
Main process terminated
9:4905
8:4950
これは、T1 と T2 の開始後に run() メソッドが実行されたことを意味します。start() メソッドが呼び出されたときに run() が実行されると私はまだ考えています。よろしくお願いします!