使用线程进行流程控制时,一般会有诸如stopping ,suspending 之类的需求.jdk1.6中suspend(),resume()标明已经过时了,得另找解决方法.
场景一,如果在一个线程中读去一个数据,并等待一定时间,如果则暂停线程.
场景二,直接停止线程.
找到时间点,如下:
场景一,如果在一个线程中读去一个数据,并等待一定时间,如果则暂停线程.
public final void cancel() {
try {
this.interrupt();
} catch (Exception e) {
e.printStackTrace();
return;
}
}
public void run(){
isReadedFlag = XX.get(parameter);
while(true)
{
try{
this.sleap(time);
if(isReadedFlag) this.cancel();
}catch(InterruptedException interrupted)
{
break;
}
}
}
场景二,直接停止线程.
找到时间点,如下:
public void setStopFlag(){
stopFlag=stop;
}
public void run(){
process....
/*time point :*/
if(stopFlag) return;
process....
/*time point :*/
if(stopFlag) return;
}