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。
我正在使用 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。