次のプログラムでは、新しいスレッドで開始されるmain
スレッド呼び出しが呼び出されます。まで呼び出します。startThread
greet_thread
greet
startThread
greet_thread
count is less than or equal to 10
現在実行中のスレッド数を知る方法はありますか? より具体的には、現在実行中の への呼び出しによって開始されたスレッドの数を知りたいですgreet_thread
。greet_thread
というよう に、最後は一人で走るの10 times
は当たり前。10 threads
しかし、番号を知る方法はありますか?
これは、プログラムで開始されたスレッドの階層です。
main_thread
|
\ /
starts a new thread by calling startThread
|
\ /
startThread starts a new thread by calling greet_thread-->--|
| |
\ / \ / gets called 10 times
greetThread is started with an infinite loop------<------- |
|
\ /
greet() method is called
class Tester {
private static int count = 0;
public static void main(String args[]) {
startThread();
}
public static void startThread() {
Runnable r = new Runnable() {
@Override
public void run() {
while(count <= 10) {
greet_thread(count);
count++;
}
}
};
new Thread(r).start();
}
public static void greet_thread(final int count) {
Runnable r = new Runnable() {
@Override
public void run() {
while(true) {
greet();
}
}
};
new Thread(r).start();
}
public static void greet() {
System.out.println("GREET !");
}
}