Javapet 发表于 2008-4-1 14:48

线程问题,急!!!!

下面的线程是不是用interrupt()来中断??如果是的话,为什么中断了还会运行后面的语句?
                                         如果不是的话,那应该怎么样来终止线程?
class test
{
          public test()
          {
              work w=new work();
              w.start();
          }
                public static void main(String[] args)
                {
                                test t=new test();
                }
}
class work extends Thread
{
                public void run()
                {
                                System.out.println("线程正在运行!!");
                                this.interrupt();
                                System.out.println("线程关闭了!!");
                                System.out.println("为何还能显示,出问题了!!");
                }
}

帅浪 发表于 2008-4-1 15:14

回复 1# 的帖子

class test
{
      public test()
      {
          work w=new work();
          w.start();
      }
        public static void main(String[] args)
        {
                test t=new test();
        }
}
class work extends Thread
{
        public void run()
        {
                System.out.println("线程正在运行!!");
                this.interrupt();
                if(isInterrupted()){
                System.out.println("线程关闭了!!");}
                else
                System.out.println("为何还能显示,出问题了!!");
        }
}
我加了个判断, 测试当前线程是否已经中断。返回应该也是被中断了!

Javapet 发表于 2008-4-1 15:24

用this.interrupt()中断了线程,怎么还会执行if语句啊??我想实现线程一旦被终止或结束后,不再执行下面的语句!

fqj793 发表于 2008-4-1 15:35

interrupt()的作用只是"唤醒"由于sleep()方法面处于休眠状态的线程,使其重新排队等待CPU资源!并没有说马上就能中断本线程!

帅浪 发表于 2008-4-1 16:10

回复 3# 的帖子

呵呵!

Javapet 发表于 2008-4-1 16:22

那怎么样人为地终止线程??

页: [1]

编程论坛