一个TimerTask的管理类

在管道流的接收方用PipedInputStream.read(byte[] )是一个阻塞式的读取,而这个读取一般是放在一个线程中的,这时我们就需要给这个读取过程设置一个时间限制,如果时间到了就结束线程。

这是一个线程管理类,作用是管理一些有阻塞的线程的结束。

方法说明:建立一个Timer对象作为定时器,然后这个类是TimerTask的子类,所以就必须实现run方法(类似线程)。然后再设一个标志bStop,用于表示是否run方法结束时关掉Timer(Timer这个类一旦初始化必须调用Timer.cancel()方法才能结束程序,否则程序一直运行)

class ThreadManagement extends TimerTask {
private Thread t = null;
private Timer timer = null;
private boolean bStop = false;
public ThreadManagement(Thread t) {
this.t = t;
timer = new Timer();
bStop = true;
}
public void stop(long millis, boolean bStop) {
this.bStop = bStop;
this.stop(millis);
}
public void stop(long millis, Thread t) {
this.t = t;
this.stop(millis);
}
public void stop(long millis) {
timer.schedule(this, millis);
}
@Override
public void run() {
// TODO Auto-generated method stub
if(t.isAlive()) {
System.out.println("thread alive");
t.interrupt();
} else {
System.out.println("thread not alive");
}
if(bStop) {
timer.cancel();
}
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值