java中如何使线程运行一定时间后停止
使用计时器Timer,可以实现,在计时器中设定时间,到达后关闭计时器,退出线程就行了。 import java.awt.*; import java.awt.event.*; import javax.swing.Timer; class tt implements ActionListener{ ttt t; Timer time; public tt(ttt t){ this.t=t; time=new Timer(1000,this); time.setRepeats(false); } public void actionPerformed(ActionEvent e){ time.stop(); } } class ttt extends Thread{ tt temp; int i=0; public ttt(){ temp=new tt(this); } public void run(){ temp.time.start(); while(i
如何关闭java线程
关闭线程有几种方法,
一种是调用它里面的stop()方法
另一种就是你自己设置一个停止线程的标记 (推荐这种)
代码如下:
package com.demo;
//测试Thread的stop方法和自己编写一个停止标记来停止线程;
public class StopThread implements Runnable{
//停止线程的标记值boolean;
private boolean flag = true;
public void stopThread(){
flag = false;
}
public void run(){
int i=0;
while(flag){
i++;
System.out.println(Thread.currentThread().getName()+":"+i);
try{
Thread.sleep(1000);
}catch(Exception e){
}
System.out.println(Thread.currentThread().getName()+"==>"+i);
}
}
public static void main(String args[]){
StopThread st = new StopThread();
Thread th = new Thread(st);
Thread th1 = new Thread(st);
th.start();
th1.start();
try{
Thread.sleep(5500);
}catch(Exception e){
}
/*
如果使用Thread.stop方法停止线程,不能保证这个线程是否完整的运行完成一次
run方法;但是如果使用停止的标记位,那么可以保正在真正停止之前完整的运行完
成一次run方法;
*/
th.stop();
st.stopThread();
}
}