Java-ExecutorService:如何重新运行;“等待状态”;线
我使用的服务是Java-ExecutorService:如何重新运行;“等待状态”;线,java,multithreading,runnable,executorservice,executor,Java,Multithreading,Runnable,Executorservice,Executor,我使用的服务是 ExecutorService executorService = Executors.newFixedThreadPool(5); for(int i = 0 ; i < 5 ; i ++){ executorService.submit(new MyRunnable()); } 当我从Runnable的while循环中断时,线程的状态变为“wait” 问题1。我的“while(true)loop”会死吗 问题2。如果它能够死亡,如何重新运行 谢谢。如果中断w
ExecutorService executorService = Executors.newFixedThreadPool(5);
for(int i = 0 ; i < 5 ; i ++){
executorService.submit(new MyRunnable());
}
当我从Runnable的while循环中断时,线程的状态变为“wait”
问题1。我的“while(true)loop”会死吗
问题2。如果它能够死亡,如何重新运行
谢谢。如果中断while循环,线程将进入终止状态,因为它将到达函数的末尾 A1。你的while循环会死
A2。你不能。您应该再次将您的runnable提交给executorService。是否等于等待并终止?等待意味着:无限期等待另一个线程执行特定操作的线程处于此状态。我猜您的runnable将在“SynchronizedQueue.getData()”处变为等待状态此调用否。。。我在while循环中添加了“break”;若你们不打破这个循环,它就变成了“WAIT”,而这个循环永远不会死
@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();
}
}
}