终止线程的运行(终止线程的运行方式)

  本篇文章为你整理了终止线程的运行(终止线程的运行方式)的详细内容,包含有终止线程的运行命令 终止线程的运行方式 终止线程运行的方法 终止线程运行的方法最佳方法 终止线程的运行,希望能帮助你了解 终止线程的运行。

  终止线程的执行

  目录终止线程的执行一、强制终止线程的执行二、合理终止线程的执行

  一、强制终止线程的执行

  强制终止用的是stop()方法,因为这种方法会丢失数据,所以一般不采用这种方法。

  原理是直接杀死线程,这样的话线程中没有保存的数据就会丢失

  

/*

 

  在java中强制终止一个线程

  public class ThreaTest09 {

   public static void main(String[] args) {

   Thread t=new Thread(new Thread09());

   t.setName("t");

   t.start();

   try {

   Thread.sleep(1000*5);

   } catch (InterruptedException e) {

   e.printStackTrace();

   //stop()强行终止,容易丢失数据,这种方式是直接杀死线程,线程没有保存的数据会丢失。不建议使用

   t.stop();

  //一秒打印一个数字

  class Thread09 implements Runnable{

   @Override

   public void run() {

   for (int i = 0; i i++) {

   System.out.println(Thread.currentThread().getName()+"---- begin"+i);

   try {

   Thread.sleep(1000);

   } catch (InterruptedException e) {

   e.printStackTrace();

  

 

  输出:

  

t---- begin0

 

  t---- begin1

  t---- begin2

  t---- begin3

  t---- begin4

  

 

  可以看出,我们在主线程当中的休眠5s并没有执行!

  二、合理终止线程的执行

  既然上面那种方法会有容易丢失数据的缺点,那么我们在线程的操作中怎么去合理终止线程的运行呢?

  我们可以定义一个布尔值,用来控制线程的结束

  代码:

  

public class ThreadTest10 {

 

   public static void main(String[] args) {

   Thread10 thread10 = new Thread10();

   Thread t=new Thread(thread10);

   t.setName("t");

   t.start();

   try {

   Thread.sleep(5000);

   } catch (InterruptedException e) {

   e.printStackTrace();

   thread10.run=false;

  class Thread10 implements Runnable{

   boolean run=true;

   @Override

   public void run() {

   for (int i = 0; i i++) {

   if (run){

   System.out.println(Thread.currentThread().getName()+"----- "+i);

   try {

   Thread.sleep(1000);

   } catch (InterruptedException e) {

   e.printStackTrace();

   }else {

   //终止当前线程

   //return就是结束,如果还有未保存的可以在这里执行保存,然后再结束

   //save....

   return;

  

 

  输出:

  

t----- 0

 

  t----- 1

  t----- 2

  t----- 3

  t----- 4

  

 

  可以看出在程序中正常执行,当主线程休眠5s之后就调开始执行,把true改为false停止了程序,线程正常结束!

  以上就是终止线程的运行(终止线程的运行方式)的详细内容,想要了解更多 终止线程的运行的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: