美文网首页技术干货程序员
Java 中的线程创建的方式(二)

Java 中的线程创建的方式(二)

作者: 我是小徐同学 | 来源:发表于2017-06-04 16:54 被阅读0次

导语:

上篇文章中介绍了线程创建的第一种方法,本文主要介绍线程的第二种创建方式,并通过实例带大家理解线程创建的另外一种方法。

线程的创建,启动方式二

线程创建的第二种方法是实现 Runnable 接口
先上代码:

1 public class TestThread001 implements Runnable{//创建了一个普通的类TestThread001,实现Runnable接口,具备争抢资源的能力,即多线程的能力。
2   //实现接口后,就要重写里面的抽象方法 run,run 方法里面的内容就是线程体
3   @Override
4   public void run() {
5       for (int i = 1; i <=10; i++) {
6           System.out.println(i);
7       }   
8   }
9 }
10 public class Test {
11  public static void main(String[] args) {
12      TestThread001 tt=new TestThread001();//创建了一个线程对象。       
13        //tt.start();
14      Thread t=new Thread(tt);
15      t.setName("线程Test--");
16      t.start();
17      for (int i = 1; i <=10; i++) {
18          System.out.println(Thread.currentThread().getName()+i);
19      }
20  }
21 }

现在就来解释一下这段代码:

第 1 至 9 行代码只是表示创建了一个普通的类 TestThread001,然后该类实现了 Runnable 接口,具备了多线程的能力。和第一种方法类似,实现了 Runnable 接口之后也需要重写 run 方法。

第 12 行表示创建了一个线程对象 tt,但此时它只是一个普通的对象而已。此时,如果再执行 tt.start() 语句,你就会发现 tt 根本没有 start() 方法。但是,启动一个线程又必须调用它的 start() 方法。怎么办?

首先我们要知道的是, start() 方法是属于 Thread 类的,所以需要根据 Thread 类创建一个对象 t,调用这个对象的 start() 方法把 tt 线程启动起来。那这个 Thread 对象怎么才能和线程对象联系起来呢?答案就是通过构造器,所以就有了第 14 行代码(我应该表达清楚了吧)。然后第 15 行给线程起名字,第 16 行,调用 t 的 start() 方法启动线程 tt。

这段代码就是线程创建并启动的第二种标准方法,应该不难理解。

这段代码的运行结果如下:


运行结果

这段代码也表明这两个线程在微观上是交替运行的。

那么这两种创建线程的方式哪种好呢?
答案是第二种方法好,即实现 Runnable 方法更好。因为在Java中只能单继承,一个类继承了 Thread 类之后就不能再继承其他的类了,而一个类却可以多实现,实现不同的接口,所以第二种方法比第一种更好。

相关文章

  • 线程

    java 中创建线程有哪几种方式? Java中创建线程主要有三种方式: 一、继承Thread类创建线程类 (1)定...

  • Java多线程:线程的创建与启动

    # 面试题: Java中创建线程有几种方式。 不同的创建方式有什么区别。 如何启动一个线程。 # Java中创建线...

  • Java 多线程之线程的创建及其使用

    一、创建线程以及启动线程 二、停止线程 三、线程类中函数详解 一、创建线程以及启动线程 创建线程:Java中创建线...

  • kotlin学习第九天:线程、协程

    线程 Java中创建线程的两种方式 Thread类 Java使用java.lang.Thread类代表线程,所有的...

  • Java 中的线程创建的方式(二)

    导语: 上篇文章中介绍了线程创建的第一种方法,本文主要介绍线程的第二种创建方式,并通过实例带大家理解线程创建的另外...

  • Java创建线程的三种方式及对比

    一.Java创建线程的三种方式 Java中创建线程主要有三种方式:1.继承Thread类2.实现Runnable接...

  • java中创建线程的方式

    Java创建线程的多种方式 1、通过extends Thread 2、通过implements Runnable ...

  • 线程池的使用入门

    在上一篇文章中,我们总结了三种创建线程的方式:《Java多线程基础——三种创建线程的方式》,然而在真实的开发中很少...

  • Java的两种多线程实现方式

    一、创建多线程的两种方式 Java中,有两种方式可以创建多线程: 1 通过继承Thread类,重写Thread的...

  • java中创建线程池的方式

    创建线程池的方式: 使用Java提供的用于管理线程池的接口ExecutorService 创建线程池,共有四种方式...

网友评论

    本文标题:Java 中的线程创建的方式(二)

    本文链接:https://www.haomeiwen.com/subject/dowvfxtx.html