java Runnable接口创建线程

 更新时间:2017年07月03日 16:45:59   投稿:lqh   我要评论
这篇文章主要介绍了java Runnable接口创建线程的相关资料,需要的朋友可以参考下

java Runnable接口创建线程

创建一个线程,最简单的方法是创建一个实现Runnable接口的类。

为了实现Runnable,一个类只需要执行一个方法调用run(),声明如下:

public void run()

你可以重写该方法,重要的是理解的run()可以调用其他方法,使用其他类,并声明变量,就像主线程一样。

在创建一个实现Runnable接口的类之后,你可以在类中实例化一个线程对象。

Thread定义了几个构造方法,下面的这个是我们经常使用的:

Thread(Runnable threadOb,String threadName);

这里,threadOb 是一个实现Runnable 接口的类的实例,并且 threadName指定新线程的名字。
新线程创建之后,你调用它的start()方法它才会运行。

void start();

实例

下面是一个创建线程并开始让它执行的实例:

// 创建一个新的线程
class NewThread implements Runnable {
  Thread t;
  NewThread() {
   // 创建第二个新线程
   t = new Thread(this, "Demo Thread");
   System.out.println("Child thread: " + t);
   t.start(); // 开始线程
  }
  // 第二个线程入口
  public void run() {
   try {
     for(int i = 5; i > 0; i--) {
      System.out.println("Child Thread: " + i);
      // 暂停线程
      Thread.sleep(50);
     }
   } catch (InterruptedException e) {
     System.out.println("Child interrupted.");
   }
   System.out.println("Exiting child thread.");
  }
}
public class ThreadDemo {
  public static void main(String args[]) {
   new NewThread(); // 创建一个新线程
   try {
     for(int i = 5; i > 0; i--) {
      System.out.println("Main Thread: " + i);
      Thread.sleep(100);
     }
   } catch (InterruptedException e) {
     System.out.println("Main thread interrupted.");
   }
   System.out.println("Main thread exiting.");
  }
}

编译以上程序运行结果如下:

Child thread: Thread[Demo Thread,5,main]
Main Thread: 5
Child Thread: 5
Child Thread: 4
Main Thread: 4
Child Thread: 3
Child Thread: 2
Main Thread: 3
Child Thread: 1
Exiting child thread.
Main Thread: 2
Main Thread: 1
Main thread exiting.

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • java集合类源码分析之Set详解

    java集合类源码分析之Set详解

    下面小编就为大家带来一篇java集合类源码分析之Set详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • Java实现的zip工具类完整实例

    Java实现的zip工具类完整实例

    这篇文章主要介绍了Java实现的zip工具类,结合完整实例形式分析了Java针对zip文件指定路径压缩、递归压缩等相关操作技巧,需要的朋友可以参考下
    2018-12-12
  • Java多线程之多线程异常捕捉

    Java多线程之多线程异常捕捉

    在java多线程程序中,所有线程都不允许抛出未捕获的checked exception,也就是说各个线程需要自己把自己的checked exception处理掉,通过此篇文章给大家分享Java多线程之多线程异常捕捉,需要的朋友可以参考下
    2015-08-08
  • 聊聊Java和CPU的关系

    聊聊Java和CPU的关系

    java和cpu关系不大,但是也有点关系,下面我们来聊一聊java和cpu的关系,感兴趣的朋友一起看看吧
    2016-08-08
  • 简单介绍Java网络编程中的HTTP请求

    简单介绍Java网络编程中的HTTP请求

    这篇文章主要介绍了简单介绍Java网络编程中的HTTP请求,需要的朋友可以参考下
    2015-09-09
  • Spring的IOC代码解析

    Spring的IOC代码解析

    这篇文章主要介绍了Spring的IOC代码解析,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • 深入浅析java中finally的用法

    深入浅析java中finally的用法

    finally自己由关键字finally和后面的finally块组成。这篇文章重点给大家介绍java中finally的用法,需要的朋友参考下吧
    2018-06-06
  • JAVA线程用法详解

    JAVA线程用法详解

    这篇文章主要介绍了JAVA线程用法,配合实例针对Java中线程的开启、sleep、合并与让出等进行了较为深入的分析,需要的朋友可以参考下
    2014-08-08
  • java反射技术与类使用示例

    java反射技术与类使用示例

    这篇文章主要介绍了java反射技术与类使用示例,需要的朋友可以参考下
    2014-04-04
  • 详谈锁和监视器之间的区别_Java并发

    详谈锁和监视器之间的区别_Java并发

    下面小编就为大家带来一篇详谈锁和监视器之间的区别_Java并发。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06

最新评论