Java线程启动后定时摧毁如何实现

解决方案 »

  1.   

    首先肯定得设置一个守护线程专门计时用,该线程的功能就是到时间修改标记位
    其他的线程都引入标记位,当标记位为false时跳出循环,线程结束。
      

  2.   

     试试这个 interrupt()   //中断线程。 
      

  3.   


    run方法这样写
        public void run() {
            while(!this.interrupted()){
                System.out.println("running...");
            }
        }
    想结束这个线程就调用这个线程的interrupt方法就好了。
      

  4.   

    想自我销毁可以这样写 比如3秒销毁    public void run() {
            long st = System.currentTimeMillis();
            while (!this.interrupted()) {
                System.out.println("running...");            long et = System.currentTimeMillis();
                if ((et - st) > 3000) {
                    break;
                }
            }
        }
      

  5.   

    boolean b = true;
    while(b){...}
    要结束线程的时候把b置为false不就停了?
      

  6.   

    import static java.util.concurrent.TimeUnit.*;
     class BeeperControl {
       private final ScheduledExecutorService scheduler =
         Executors.newScheduledThreadPool(1);   public void beepForAnHour() {
         final Runnable beeper = new Runnable() {
           public void run() { System.out.println("beep"); }
         };
         final ScheduledFuture<?> beeperHandle =
           scheduler.scheduleAtFixedRate(beeper, 10, 10, SECONDS);
         scheduler.schedule(new Runnable() {
           public void run() { beeperHandle.cancel(true); }
         }, 60 * 60, SECONDS);
       }
     }