Java创建与结束线程代码示例

  

本文讲述了在Java中如何创建和结束线程的最基本方法,只针对于Java初学者。一些高级知识如线程同步,调度、线程池等内容将会在后续章节中逐步深入。
  

  

<>强创建线程
  

  

创建普通线程有两种方式,继承线程类或实现运行的接口。示例如下。
  

  

<强>方法1:继承线程类
  

  

创建方法示例:

        公共类MyThread1扩展线程{   @Override   公共空间run () {//TODO自动生成方法存根   super.run ();   system . out。println(“执行线程:MyThread1”);   }   }      

<强>方法2:实现运行的接口
  

  

创建方法示例:

        公共类MyRunnable1实现Runnable {   @Override   公共空间run () {//TODO自动生成方法存根   system . out。println(“执行线程:MyRunnable1”);   }   }      

运行线程
  

  

针对上述两种方法,调用线程开始运行的方法分别如下。
  

  

方式示例1:新MyThread1 () .start ();
  方法示例2:新线程(新MyRunnable1 ()) .start ();
  

  

<强>停止线程
  

  

请不要采取已经过时(弃用)的java.lang.Thread。站方法,不论你因为何种原因需要暂停或完全结束当前正在运行的线程。
  

  

<强>常见的退出线程的方法如下。
  

  

方式1:线程自动退出
  

  

线程执行完毕,自动退出。例如网络下载线程,当后台下载完后,线程自动退出。
  

  

方法2:使用中断主动退出
  

  

在主线程中,调用线程对象的中断()方法,设置线程状态。

        最后一个线程t=新MyThread2 ();   t.start ();   尝试{   thread . sleep (500);   }捕捉(InterruptedException e) {   e.printStackTrace ();   }   t.interrupt ();之前      

在子线程中,调用isInterrupted()方法判断线程状态。如果返回真,则可以结束线程运行。如下示例代码,在线程中有一个虽然循环,每次循环都会判断线程状态,如果为真,则停止循环,退出线程。

        公共类MyThread2扩展线程{   @Override   公共空间run () {   super.run ();   而(真){//取消线程时调用中断()方法   如果(Thread.currentThread () .isInterrupted ()) {   打破;   }   }   }   }      

在主线程中调用中断设置状态,在子线程中通过isInterrupted获取状态,是最好的结束线程的方法。注意主线程中一旦调用中断,子线程中相关的睡眠,等待方法在执行时会抛出InterruptedException异常,此时也可以通过捕获这种异常来结束线程。
  

  

<强>方式3:使用预设标志主动退出
  

  

预设一个退出标志,通过判断标志的值结束线程运行。这种情况常见于循环执行中的任务。在每次循环时,判断标志值。如下示例,在线程而循环中判断mCancelFlag标志。

        公共类MyThread3扩展线程{   私人布尔mCancelFlag;   @Override   公共空间run () {   super.run ();   system . out。println(“线程启动”);   而(mCancelFlag) {//取消线程时调用中断()方法   打破;   }   system . out。println(“线程”);   }   公共空间cancelThread () {   mCancelFlag=true;   }   }      

当主线程希望主动结束线程时,调用线程的cancelThread方法设置mCancelFlag即可。

        最后MyThread3 t=新MyThread3 ();   t.start ();   尝试{   thread . sleep (500);   }捕捉(InterruptedException e) {   e.printStackTrace ();   }//停止线程   t.cancelThread ();之前      

如果在线程执行时,需要主动退出线程,最佳的方式为方法2。用户根据实际情况,例如更多的状态控制,也可以使用方法3。
  

  

<强>一句话总结
  

  

创建线程:继承线程类或实现运行的接口。
  

  

结束线程:调用中断方法。

  

  

以上就是本文关于Java创建与结束线程代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:Java多线程之线程通信生产者消费者模式及等待唤醒机制代码详解,Java编程之多线程死锁与线程间通信简单实现代码,Java编程利用套接字多线程访问服务器文件代码示例等,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Java创建与结束线程代码示例