写一个程序,模拟4个售票窗口共同卖100张火车票的程序。
1:使用继承Thread类方式实现()。
2:使用实现Runnable接口方式实现()。
第一种方式
package com.ljq.test;
/**
* 使用Thread类模拟4个售票窗口共同卖100张火车票的程序
*
* 没有共享数据,每个线程各卖100张火车票
*
* @author jiqinlin
*
*/
public class ThreadTest {
public static void main(String[] args){
new MyThread().start();
new MyThread().start();
new MyThread().start();
new MyThread().start();
}
public static class MyThread extends Thread{
//车票数量
private int tickets=100;
@Override
public void run() {
while(tickets>0){
System.out.println(this.getName()+"卖出第【"+tickets--+"】张火车票");
}
}
}
}
第二种方式
package com.ljq.test;
/**
* 使用Runnable接口模拟4个售票窗口共同卖100张火车票的程序
*
* 共享数据,4个线程共同卖这100张火车票
* @author jiqinlin
*
*/
public class RunnableTest {
public static void main(String[] args) {
Runnable runnable=new MyThread();
new Thread(runnable).start();
new Thread(runnable).start();
new Thread(runnable).start();
new Thread(runnable).start();
}
public static class MyThread implements Runnable{
//车票数量
private int tickets=100;
public void run() {
while(tickets>0){
System.out.println(Thread.currentThread().getName()+"卖出第【"+tickets--+"】张火车票");
}
}
}
}
这两种线程创建方式的比较
使用Runnable接口
实际工作中,几乎所有的多线程应用都用实现Runnable这种方式。
Runnable适合多个相同程序代码的线程去处理同一资源的情况。把虚拟CPU(线程)同程序的代码、数据有效的分离,较好的体现了面向对象的设计思想。
避免由于Java的单继承特性带来的局限性。也就是如果新建的类要继承其他类的话,因为JAVA中不支持多继承,就只能实现java.lang.Runnable接口。
有利于程序的健壮性,代码能够被多个线程共享,代码与数据是独立的。
继承Thread类
不能再继承他类了。
编写简单,可以直接操纵线程,无需使用Thread.currentThread()。
请查询API 获得currentThread方法的作用说明。
分享到:
相关推荐
### Java中的两种多线程实现方式 在Java中,实现多线程的两种主要方式分别是:**通过继承`Thread`类** 和 **实现`Runnable`接口**。下面将详细介绍这两种方式,并提供相应的示例程序。 #### 一、通过继承`Thread`...
"Thread 线程类实现 Runnable 接口" Thread 线程类是 Java 中 Thread 和 Runnable 接口的实现,它提供了线程的基本操作和管理。...开发者可以使用 Thread 类来创建和管理线程,以实现多线程编程。
总结来说,Java中的`Thread`类和`Runnable`接口提供了两种创建多线程的方式,它们都可用于实现阶乘计算。理解这些基础概念是进行并发编程的关键,也是提升程序效率的重要手段。在实际应用中,应根据项目需求和最佳...
在Java编程语言中,创建线程有两种主要方式:继承`Thread`类和实现`Runnable`接口。由于Java的单继承特性,当一个类需要继承其他类时,就不能再直接继承`Thread`,这时实现`Runnable`接口就成为创建线程的优选方案。...
本文将详细介绍Java多线程的基本概念、线程的生命期、线程的状态转换、线程调度原则以及如何实现线程的两种常见方式。 #### 二、线程的相关概念 **1. 进程与线程的区别** - **进程**:是一个正在执行的程序实例,...
本文将详细讲解如何通过实现`Runnable`接口创建多线程,以及这种方式相较于继承`Thread`类的优势。 一、实现Runnable接口创建多线程 1. **步骤** 当一个类需要继承其他类而不能直接继承`Thread`类时,可以选择...
在Java中创建线程有两种方法:使用Thread类和使用Runnable接口。在使用Runnable接口时需要建立一个Thread实例。因此,无论是通过Thread类还是Runnable接口建立线程,都必须建立Thread类或它的子类的实例。
1. 写两个线程,一个线程打印1-52,另一个线程打印字母A-Z。打印顺序为12A34B56C……5152Z。 学习线程之间的通信协调关系。 2. 使用 runnable 接口实现按两... 使用继承Thread类方式和实现Runnable接口两种方式实现。
本文将深入探讨如何通过实现`Runnable`接口和继承`Thread`类两种方式来创建线程,并实现在屏幕上随机画正方形的程序。 首先,让我们了解线程的概念。线程是程序中的单一顺序控制流,一个进程可以包含多个线程,它们...
在Java编程语言中,创建多线程有两种主要的方法:继承`Thread`类和实现`Runnable`接口。这两种方法都是为了使程序能够同时执行多个任务,从而提高效率和响应性。 **1. 继承Thread类** 当一个类直接继承自`Thread`类...
在Java中实现多线程有两种主要方式:一种是继承`Thread`类;另一种是实现`Runnable`接口。本文将深入探讨这两种方法的区别,帮助初学者更好地理解并选择适合场景的多线程实现方案。 #### 一、继承Thread类 1. **...
Java提供了两种主要的方式来创建线程:继承Thread类和实现Runnable接口。本篇文章将深入探讨通过实现Runnable接口来创建线程的方法,以及这种方式相比于直接继承Thread类的优势。 首先,我们来看Runnable接口。在...
本篇文档主要探讨了两种实现Java多线程的数据共享方式:通过内部类和实现Runnable接口。以下是对这两种方法的详细解释: 1. **实现Runnable接口**: - **好处**:Java中的`Runnable`接口允许我们将线程逻辑(run()...
在Java中,创建多线程有两种主要的方式:继承`Thread`类和实现`Runnable`接口。这两种方式都是为了实现程序的并发执行,即允许多个任务在同一时间片内交替执行。下面我们将详细讨论这两种方法及其区别。 ### 继承...
本篇将详细讲解Java中实现多线程的两种主要方法:继承Thread类和实现Runnable接口。 ### 继承Thread类 1. **创建子类**:首先,我们需要创建一个新的类,该类继承自Java的`Thread`类。这样,我们的类就拥有了`...
在 Java 中,创建线程有两种方式:继承 Thread 类和实现 Runnable 接口。这些方式都可以用来创建线程,但它们之间有着一些关键的区别。 继承 Thread 类 继承 Thread 类是 Java 中创建线程的一种方式。这种方式下,...
本篇文章将深入探讨两种实现多线程的方式:继承`Thread`类和实现`Runnable`接口,并分析它们之间的区别。 首先,让我们了解这两种方式的基本概念: 1. **继承Thread类**:这是创建多线程的直接方式,通过创建一个...
Java提供了两种创建线程的方式:继承Thread类和实现Runnable接口。 1. 继承Thread类创建线程: 当你选择继承Thread类时,你需要创建一个新的类,这个类扩展自Thread类。Thread类已经实现了Runnable接口,所以你不...
在Java编程语言中,多线程的实现有多种方式,其中最常见的是通过继承`Thread`类和实现`Runnable`接口。这两种方法各有其特点和适用场景,理解它们之间的区别对于编写高效、可维护的多线程应用至关重要。 ### 继承...