学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
发新话题
打印

线程问题,急!!!!

线程问题,急!!!!

下面的线程是不是用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("为何还能显示,出问题了!!");
        }
}

TOP

回复 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("为何还能显示,出问题了!!");
        }
}
我加了个判断, 测试当前线程是否已经中断。返回应该也是被中断了!
世上事有难易乎?为之?则难者亦易矣;不为,则易者亦难矣

TOP

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

TOP

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

TOP

回复 3# 的帖子

呵呵!
世上事有难易乎?为之?则难者亦易矣;不为,则易者亦难矣

TOP

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

TOP

发新话题