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中实现Comparator接口和用法实例(简明易懂)

    Java中实现Comparator接口和用法实例(简明易懂)

    这篇文章主要介绍了Java中实现Comparator接口和用法实例(简明易懂),本文给出实现Comparator接口的实例和使用这个接口的代码实例,需要的朋友可以参考下
    2015-05-05
  • Java实现五子棋网络版

    Java实现五子棋网络版

    这篇文章主要为大家详细介绍了基于Java编写的网络五子棋,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • 2020年编程选Java的8大理由,JAVA前景如何

    2020年编程选Java的8大理由,JAVA前景如何

    这篇文章主要介绍了2020年编程选Java的8大理由,JAVA前景如何,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • springboot中实现通过后台创建临时表

    springboot中实现通过后台创建临时表

    这篇文章主要介绍了springboot中实现通过后台创建临时表操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • 基于restTemplate遇到的编码问题及解决

    基于restTemplate遇到的编码问题及解决

    这篇文章主要介绍了restTemplate遇到的编码问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • java实现图片裁切的工具类实例

    java实现图片裁切的工具类实例

    这篇文章主要介绍了java实现图片裁切的工具类实例,涉及Java针对图片的读取、修改等相关操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-11-11
  • 基于SpringCloudGateway实现微服务网关的方式

    基于SpringCloudGateway实现微服务网关的方式

    Spring Cloud Gateway是Spring 官方基于Spring 5.0,Spring Boot 2.0和Project Reactor 等技术开发的网关,旨在为微服务架构提供一种简单而有效的统一的API路由管理方式,对SpringCloudGateway实现微服务网关相关知识感兴趣的朋友一起看看吧
    2021-12-12
  • SpringBoot封装响应处理超详细讲解

    SpringBoot封装响应处理超详细讲解

    这篇文章主要介绍了SpringBoot封装响应处理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-12-12
  • JAVA中JVM的重排序详细介绍

    JAVA中JVM的重排序详细介绍

    重排序通常是编译器或运行时环境为了优化程序性能而采取的对指令进行重新排序执行的一种手段。重排序分为两类:编译期重排序和运行期重排序,分别对应编译时和运行时环境
    2014-05-05
  • Sublime Text 打开Java文档中文乱码的解决方案

    Sublime Text 打开Java文档中文乱码的解决方案

    这篇文章主要介绍了Sublime Text 中文乱码的解决方案,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2020-12-12

最新评论