在下面的程序main
線程調用它獲取一個新的開始thread.It調用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 !");
}
}
你能給你爲什麼想知道一個例子,它說明將如何使用?例如,你可以不使用計數器或線程池嗎? – 2013-04-08 13:20:17
@PeterLawrey只是爲了檢查有多少線程在任何情況下運行。必須有一些30K的線程運行..有一個確切的數字。所以想知道。 – saplingPro 2013-04-08 13:24:47