java终止线程代码 java线程停止执行的方法

如何停止一个正在运行的java线程在Java中有专门终止某个线程的API,如stop()和interrupt() 。其中stop()由于安全机制的我问题已经被废弃不用,现在就剩下interrupt 。其实这个方法并不是一个终断动作的操作,而是一个设置终断状态的操作 。它需要和isInterrupted()配合使用 。例如:
package org.leadfar;
public class MyThread04 extends Thread {
private boolean stop = false;
public MyThread04(String threadName) {
super(threadName);
}
@Override
public void run() {
for (int j = 0; j100; j++) {
if(this.isInterrupted()) break;
System.out.println(Thread.currentThread().getName()+":"+j);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public void setStop() {
this.stop = true;
}
//第一个线程
public static void main(String[] args) {
MyThread04 t = new MyThread04("辅线程");
t.start();
for (int i = 0; i10; i++) {
System.out.println(Thread.currentThread().getName()+":"+i);
}
System.out.println("....................");
t.interrupt();
}
}
但这个很可能不会终止线程,因为当我们终止这个线程时很可能就会发生InterruptedException异常,当有这个异常发生时我们设置的终断状态也会被清除,所以我们要终断某个线程应采用以下这个方法:
public class MyThread04 extends Thread {
private boolean stop = false;
public MyThread04(String threadName) {
super(threadName);
}
@Override
public void run() {
for (int j = 0; j100; j++) {
if(stop) break;
System.out.println(Thread.currentThread().getName()+":"+j);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public void setStop() {
this.stop = true;
}
//第一个线程
public static void main(String[] args) {
MyThread04 t = new MyThread04("辅线程");
t.start();
for (int i = 0; i10; i++) {
System.out.println(Thread.currentThread().getName()+":"+i);
}
System.out.println("....................");
t.setStop();
}
}
如何在JAVA中让一个线程死亡或结束?当线程执行完毕或被其它线程杀死 , 线程就进入死亡状态,这时线程不可能再进入就绪状态等待执行 。
线程进入死亡状态的方法有两种:
1、自然终止:正常运行run()方法后终止;
2、异常终止:调用stop()方法让一个线程终止运行 。
如下代码:
public class ThreadDemo implements Runnable{
public void run() {
}
}
当run方法执行结束,即线程死亡(结束) 。
java中终止程序的执行方案操作如下:
(1)让程序在一个单独的线程中运行,然后在终止时,可以用线程的终止方法来结束它 。
(2)退出Java程序时尽量不要使用java.lang.System的exit方法 。Exit 方法可以终止JVM,从而终止程序,但如果同时运行了另一个Java程序,使用exit方法就会让该程序也关闭,这显然不是希望看到的情况?。。。?
要退出Java程序,可以使用destory()退出一个独立运行的过程 。对于多线程程序,必须要关闭各个非守护线程 。
只有在程序非正常退出时,才使用exit方法退出程序
java中终止线程的方法?在Java的多线程编程中 , java.lang.Thread类型包含了一些列的方法start(),stop(),stop(Throwable)andsuspend(),destroy()andresume() 。通过这些方法 , 我们可以对线程进行方便的操作 , 但是这些方法中,只有start()方法得到了保留 。本文是海文国际小编搜索整理的关于JAVA中终止线程的方法 , 供参考复习,希望对大家有所帮助!

推荐阅读