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

Posted Crazy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于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);


 






































以上是关于关于java TIme 线程具体调用以及释放的主要内容,如果未能解决你的问题,请参考以下文章

java多线程学习之——多线程中几种释放锁和不释放锁的操作

java学习第22天(关于java中的锁LOCK及多线程的面试题)

关于java中生产者消费者模式的理解

关于自动释放池的讲解与介绍

关于java线程池

Java练习题 05