2014-11-05 72 views
-2
public class MyClass implements Runnable { 

    public void run(){ 
     // first work 
     ThreadPool.getInstance().runNew(new MyClass()); 
     // second work 
    } 

} 

如果我在MyClass中創建MyClass的新實例並將其發送給ThreadPoolExecutor,會發生什麼?我希望它是無限循環,只有一個實例在工作。第一個線程會立即到達「第二個工作」,還是等到下一個線程結束?調用Runnable Runnable

+3

添加'的System.out.println( 「回聲」);'語句,然後運行它,看看... – munyul 2014-11-05 12:02:05

+3

這取決於執行者的執行情況。由於標準API中沒有類ThreadPool,所以我們不知道。 – Holger 2014-11-05 12:04:00

+0

只是一個瘋狂的猜測 - 「StackOverflow」? – vikingsteve 2014-11-05 12:11:27

回答

0

我想它會運行,直到一個新的Thread不能創建。然後

的JVM會拋出:

java.lang.OutOfMemoryError: unable to create new native thread 
    at java.lang.Thread.start0(Native Method) 
    at java.lang.Thread.start(Thread.java:592)