2014-11-05 68 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)