`
walsh
  • 浏览: 431594 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

Java 多线程的Thread类和Runnable接口

    博客分类:
  • java
阅读更多
Thread 类

   Thread 类是一个具体的类,即不是抽象类,该类封装了线程的行为。要创建一个线程,程序员必须创建一个从 Thread 类导出的新类。程序员必须覆盖 Thread 的 run() 函数来完成有用的工作。用户并不直接调用此函数;而是必须调用 Thread 的 start() 函数,该函数再调用 run()。下面的代码说明了它的用法:

   创建两个新线程

import java.util.*;

class TimePrinter extends Thread {
  int pauseTime;
  String name;
  public TimePrinter(int x, String n) {
   pauseTime = x;
   name = n;
  }

  public void run() {
   while(true) {
    try {
     System.out.println(name + ":" + new Date(System.currentTimeMillis()));
     Thread.sleep(pauseTime);
    } catch(Exception e) {
     System.out.println(e);
    }
   }
  }

  static public void main(String args[]) {
   TimePrinter tp1 = new TimePrinter(1000, "Fast Guy");
   tp1.start();
   TimePrinter tp2 = new TimePrinter(3000, "Slow Guy");
   tp2.start();
  }
}

   在本例中,我们可以看到一个简单的程序,它按两个不同的时间间隔(1 秒和 3 秒)在屏幕上显示当前时间。这是通过创建两个新线程来完成的,包括 main() 共三个线程。但是,因为有时要作为线程运行的类可能已经是某个类层次的一部分,所以就不能再按这种机制创建线程。虽然在同一个类中可以实现任意数量的接口,但 Java 编程语言只允许一个类有一个父类。同时,某些程序员避免从 Thread 类导出,因为它强加了类层次。对于这种情况,就要 runnable 接口。Runnable 接口只有一个方法,所以更加安全。不会产生恶意的更改。

   Runnable 接口

   此接口只有一个函数,run(),此函数必须由实现了此接口的类实现。但是,就运行这个类而论,其语义与前一个示例稍有不同。我们可以用 runnable 接口改写前一个示例。(不同的部分用蓝色表示。)

   创建两个新线程而不强加类层次

import java.util.*;

class TimePrinter implements Runnable {
  int pauseTime;
  String name;
  public TimePrinter(int x, String n) {
   pauseTime = x;
   name = n;
  }

  public void run() {
   while(true) {
    try {
     System.out.println(name + ":" + new Date(System.currentTimeMillis()));
     Thread.sleep(pauseTime);
    } catch(Exception e) {
     System.out.println(e);
    }
   }
  }

  static public void main(String args[]) {
   Thread t1 = new Thread(new TimePrinter(1000, "Fast Guy"));
   t1.start();
   Thread t2 = new Thread(new TimePrinter(3000, "Slow Guy"));
   t2.start();
  }
}

   请注意,当使用 runnable 接口时,您不能直接创建所需类的对象并运行它;必须从 Thread 类的一个实例内部运行它。许多程序员更喜欢 runnable 接口,因为从 Thread 类继承会强加类层次。
分享到:
评论

相关推荐

    JAVA中使用Thread类和Runnable接口创建多线程

    在Java中创建线程有两种方法:使用Thread类和使用Runnable接口。在使用Runnable接口时需要建立一个Thread实例。因此,无论是通过Thread类还是Runnable接口建立线程,都必须建立Thread类或它的子类的实例。

    thread 线程类 实现runnable接口

    "Thread 线程类实现 Runnable 接口" Thread 线程类是 Java 中 Thread 和 Runnable 接口的实现,它提供了线程的基本操作和管理。...开发者可以使用 Thread 类来创建和管理线程,以实现多线程编程。

    【java学习记录】11.多线程实现阶乘计算(Thread类和Runnable接口)

    总结来说,Java中的`Thread`类和`Runnable`接口提供了两种创建多线程的方式,它们都可用于实现阶乘计算。理解这些基础概念是进行并发编程的关键,也是提升程序效率的重要手段。在实际应用中,应根据项目需求和最佳...

    java多线程、通信机制、Thread类以及Runnable接口间的使用实例

    1. 写两个线程,一个线程打印1-52,另一个线程打印字母A-Z。打印顺序为12A34B56C……5152Z。 学习线程之间的通信协调关系。 2. 使用 runnable 接口实现按两... 使用继承Thread类方式和实现Runnable接口两种方式实现。

    Java多线程技术 线程的死锁,详细阐述了多线程的两种实现方法: 由Thread类派生子类;实现Runnable接口

    ### Java多线程技术详解 #### 一、引言 多线程编程是现代软件开发中不可或缺的一部分,尤其是在Java这样的面向对象编程语言中尤为重要。Java提供了丰富的API支持多线程编程,使得开发者能够轻松地创建复杂的并发...

    实现Runnable接口创建多线程.docx

    在Java编程语言中,创建线程有两种主要方式:继承`Thread`类和实现`Runnable`接口。由于Java的单继承特性,当一个类需要继承其他类时,就不能再直接...不过,理解基本的`Runnable`接口实现是掌握Java多线程编程的基础。

    Java有两种实现多线程的方式:通过Runnable接口、通过Thread直接实现,请掌握这两种实现方式,并编写示例程序。

    在Java中,实现多线程的两种主要方式分别是:**通过继承`Thread`类** 和 **实现`Runnable`接口**。下面将详细介绍这两种方式,并提供相应的示例程序。 #### 一、通过继承`Thread`类实现多线程 在Java中,可以通过...

    java线程_Thread_Runnable

    Java提供了两种创建线程的方式:继承Thread类和实现Runnable接口。 1. 继承Thread类创建线程: 当你选择继承Thread类时,你需要创建一个新的类,这个类扩展自Thread类。Thread类已经实现了Runnable接口,所以你不...

    Java多线程-创建多线程的基本方式二:实现Runnable接口

    总结,实现`Runnable`接口是创建Java多线程的一种常见方式,它提供了更大的灵活性,尤其是在需要多继承或者线程之间需要共享数据的情况下。掌握这两种创建线程的方法,并了解其适用场景,对于编写高效的并发程序至关...

    java 多线程Thread与runnable的区别

    在 Java 中,实现多线程有两种方法:继承 Thread 类和实现 Runnable 接口。在本文中,我们将对这两种方法进行详细的介绍和对比。 继承 Thread 类 继承 Thread 类是 Java 中最基本的多线程实现方法。 Thread 类提供...

    Java中继承thread类与实现Runnable接口的比较

    在 Java 中,创建线程有两种方式:继承 Thread 类和实现 Runnable 接口。这些方式都可以用来创建线程,但它们之间有着一些关键的区别。 继承 Thread 类 继承 Thread 类是 Java 中创建线程的一种方式。这种方式下,...

    java多线程Runnable实例

    `Runnable`接口是Java实现多线程的一种方式,通过实现`Runnable`接口并创建`Thread`对象,可以轻松地创建并运行多线程。`TestRunnable.java`文件展示了这一过程,同时也提醒我们在实际开发中要注意线程同步和通信,...

    java多线程编程之使用runnable接口创建线程

    总的来说,使用`Runnable`接口创建线程是Java多线程编程中的基础操作,它提供了多线程的灵活性,同时也允许我们更好地管理和控制线程的行为。通过理解这个过程,开发者可以构建更加复杂的并发系统,处理多任务并行,...

    java多线程的讲解和实战

    Java多线程是Java编程中的重要概念,尤其在如今的多核处理器环境下,理解并熟练掌握多线程技术对于提高程序性能和响应速度至关重要。本资料详细讲解了Java多线程的原理,并提供了丰富的实战代码,非常适合Java初学者...

    深入浅出 Java 多线程.pdf

    在本文中,我们将深入浅出Java多线程编程的世界,探索多线程编程的基本概念、多线程编程的优点、多线程编程的缺点、多线程编程的应用场景、多线程编程的实现方法等内容。 一、多线程编程的基本概念 多线程编程是指...

    Java多线程知识点总结

    Java多线程是Java编程语言中一个非常重要的概念,它允许开发者在一个程序中创建多个执行线程并行运行,以提高程序的执行效率和响应速度。在Java中,线程的生命周期包含五个基本状态,分别是新建状态(New)、就绪...

    JAVA 多线程的PPT和示例

    Java多线程是Java编程中的一个核心概念,它允许程序同时执行多个独立的任务,从而提高应用程序的效率和响应性。在Java中,多线程主要通过两种方式实现:继承Thread类和实现Runnable接口。这份"JAVA多线程的PPT和示例...

    java多线程Demo

    Java多线程是Java编程中的一个重要概念,它允许程序同时执行多个任务,提高了程序的效率和响应速度。在Java中,实现多线程有两种主要方式:继承Thread类和实现Runnable接口。 1. 继承Thread类: 当我们创建一个新...

Global site tag (gtag.js) - Google Analytics