Java - ExecutorService:如何重新 运行 "wait state" 线程

Java - ExecutorService : How to re run "wait state" thread

我正在使用 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 循环中断时,线程的状态变为 "wait"。

Q1。我的"while(true) loop"能死吗?

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

谢谢。

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

A1。你的 while 循环会结束

A2。你不能。你应该再次提交你的 runnable 到 executorService。