关于java TIme 线程具体调用以及释放

自己随手写了一套验证码系统,但是调用过程中线程无法释放,研究后正确代码:

/**
* 验证码系统
* */
public class Diyyzm extends TimerTask {

private static Timer _timer = new Timer(); // 首先初始化一个Timer对象

// 初始化变量
public static String _result;
public static int _i= 0;
public static L2PcInstance _player;

// 用来判断是否运行线程
public static boolean isRun = true;

// 调用关闭线程
public void stopme() {
cancel(); // 终止线程
System.gc(); // 释放内存
}

// 开始线程计时器
public void startme() {
_timer.scheduleAtFixedRate(new Diyyzm(), 0, 1000);
}

 

public void run() {

while (isRun) {
_i++;
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}

if(_i >= 5 ){ // 超时5秒后自动kill
isRun = false; // 关闭开关
stopme();// 终止线程
}
}
}

 

 

 

}

 

 

 

// 验证码系统 每次调用初始化一下系统变量。
Diyyzm yzm = new Diyyzm();
yzm.isRun = true; // 初始化变量
yzm._i = 0; // 初始化变量
yzm.sanyzm(activeChar);


 

posted @ 2017-03-05 23:46  New_Crazy  阅读(504)  评论(0编辑  收藏  举报