Java - ExecutorService:如何重新运行"等待状态"线

时间:2016-01-20 05:44:11

标签: java multithreading runnable executorservice executor

我使用的是ExecutorService,

ExecutorService executorService = Executors.newFixedThreadPool(5);

for(int i = 0 ; i < 5 ; i ++){
    executorService.submit(new MyRunnable());
}

和我的Runnable就像,

@Override
public void run(){
    while(true){
        try{
            Data data = SynchronizedQueue.getData(); // Class Name is Sample...
            if( data != null ){
                //process with data
            }else{
                Thread.sleep(1);
            }
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}

当我从Runnable的while循环中断开时,Thread的状态变为&#34; wait&#34;。

Q1。我的&#34; while(true)循环&#34;死?

Q2。如果它能够死,怎么重新运行?

谢谢。

1 个答案:

答案 0 :(得分:0)

如果你从while循环中断,你的线程将进入TERMINATED状态,因为它将到达函数结束。

A1。你的while循环会死掉

A2。你不能。您应该再次将您的runnable提交给executorService。