以下是我线程的定义:(analyzing成员函数太多我省略了)publicclassanalyzingCommandextendsThread{staticbooleantag=true;connectioncon=newconnection();publicvoidrun(){while(ta...
以下是我线程的定义:(analyzing成员函数太多我省略了)
public class analyzingCommand extends Thread{
static boolean tag=true;
connection con=new connection();
public void run(){
while(tag){
while(0
this.analyzing(con.getCommand().get(0).toString());
System.out.println(con.getCommand().get(0).toString()+"cnx");
con.removeCommand(0);
}
System.out.print("..");
}
}
public void startAnalylyzing(){
tag=true;
}
public void stopAnalyzing(){
tag=false;
}
}
下面是我的测试函数:
public static void main(String [] args){
connection con=new connection();
analyzingCommand ac=new analyzingCommand();
ac.start();
con.setCommand("*1*,2012/6/27 12:09:09,255.255.255.254,1,13,1");
Timer t=new Timer();
t.schedule(new MyTask1(), 5*1000);
t.schedule(new MyTask2(), 10*1000);
while(true){//这个是用来停止此任务的,否则就一直循环执行此任务了
try {
int ch = System.in.read();
if(ch-'c'==0){
t.cancel();//使用这个方法退出任务
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
static class MyTask1 extends java.util.TimerTask{
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println(new connection().getAnswer().get(0));
}
}
static class MyTask2 extends java.util.TimerTask{
@Override
public void run() {
// TODO Auto-generated method stub
new analyzingCommand().stopAnalyzing();
}
}
10秒之后我看我的资源管理器,还有一个javaw进程,没有占用cpu,但是内存还占着。
一个线程是不是执行完run()就算是结束了啊,这个时候他会释放资源吗?
展开