我使用的是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。如果它能够死,怎么重新运行?
谢谢。
答案 0 :(得分:0)
如果你从while循环中断,你的线程将进入TERMINATED状态,因为它将到达函数结束。
A1。你的while循环会死掉
A2。你不能。您应该再次将您的runnable提交给executorService。