package com.tianmushanlu.thread;
/**
* 创建步骤:
* 1. 自定义一个类实现Runnable接口。
* 2. 实现Runnable接口 的run方法,把自定义线程的任务定义在run方法上。
* 3. 创建Runnable实现类对象。
* 4. 创建Thread类 的对象,并且把Runnable实现类的对象作为实参传递。
* 5. 调用Thread对象 的start方法开启一个线程。
*
* 注意:
* Runnable实现类的对象并 不是一个线程对象,只不过是实现了Runnable接口的对象而已。
* 只有是Thread或者是Thread的子类才是线程对象。
*
*
*
*/
class TicketWindows implements Runnable{
Integer num = 50;
@Override
public void run() {
while(true) {
synchronized ("锁对象") {
if(num > 0) {
System.out.println(Thread.currentThread().getName()+"售出了第"+num+"票");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
num--;
}else{
System.out.println("票以售罄...........");
break;
}
}
}
}
}
public class ThreadDemo2 {
public static void main(String[] args) {
//创建了一个Runnable实现类的对象
TicketWindows TicketWindows = new TicketWindows();
Thread thread1 = new Thread(TicketWindows,"窗口1");
Thread thread2 = new Thread(TicketWindows,"窗口2");
Thread thread3 = new Thread(TicketWindows,"窗口3");
//开启3个线程售票
thread1.start();
thread2.start();
thread3.start();
}
}
分享到:
相关推荐
一个简单的多线程代码示例,Java实现,用于实现同一时刻,只允许一个线程调用执行的代码块或类,即synchronized的如何使用(多线程实现),实现 Runnable
`Runnable`接口是Java实现多线程的一种方式,通过实现`Runnable`接口并创建`Thread`对象,可以轻松地创建并运行多线程。`TestRunnable.java`文件展示了这一过程,同时也提醒我们在实际开发中要注意线程同步和通信,...
"implements Runnable"是Java编程语言中的一个重要概念,它与多线程编程紧密相关。在Java中,线程是程序执行的最小单位,而创建线程主要有两种方式:继承Thread类和实现Runnable接口。本项目是一个Java小游戏,核心...
在Java中,实现多线程的两种主要方式分别是:**通过继承`Thread`类** 和 **实现`Runnable`接口**。下面将详细介绍这两种方式,并提供相应的示例程序。 #### 一、通过继承`Thread`类实现多线程 在Java中,可以通过...
Java线程有五种基本状态:新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Terminated)。线程的状态会随着程序的运行而变化: 1. **新建**:当创建了一个新的线程对象后,该线程处于新建...
Java提供了两种创建线程的方式:继承Thread类和实现Runnable接口。 1. 继承Thread类创建线程: 当你选择继承Thread类时,你需要创建一个新的类,这个类扩展自Thread类。Thread类已经实现了Runnable接口,所以你不...
本文从Java线程的基础入手,介绍了线程的两种创建方式——继承`Thread`类和实现`Runnable`接口,讨论了线程的基本操作,最后深入探讨了同步和死锁的概念。通过学习这些内容,读者可以更好地理解和运用Java多线程技术...
在Java中,我们可以通过继承`Thread`类或实现`Runnable`接口来创建线程。在这个实例中,可能有四个线程:主线程(Main)以及名为A、B和C的三个子线程。每个子线程可能代表不同的任务,它们并行运行,从而加快整体...
本文将详细介绍Java多线程的基本概念、线程的生命期、线程的状态转换、线程调度原则以及如何实现线程的两种常见方式。 #### 二、线程的相关概念 **1. 进程与线程的区别** - **进程**:是一个正在执行的程序实例,...
- **创建Runnable实现类的实例**:通过实例化这个实现类,为后续创建`Thread`对象做准备。 - **启动线程**:创建`Thread`对象,将`Runnable`实现类的实例作为参数传递给`Thread`的构造函数,然后调用`Thread`对象...
Java线程有10个优先级(MIN_PRIORITY, NORM_PRIORITY, MAX_PRIORITY),默认优先级是NORM_PRIORITY。但是,线程优先级并不保证绝对的执行顺序,操作系统调度策略可能影响实际执行顺序。 7. join()方法: 一个线程...
Java线程是多任务编程的重要概念,特别是在大型的、复杂的软件系统中,它允许程序同时执行多个不同的任务,提升程序的并发性和效率。本示例"简单的Java线程demo"旨在帮助初学者理解如何在Java中创建和管理线程。 在...
本篇将详细讲解Java中实现多线程的两种主要方法:继承Thread类和实现Runnable接口。 ### 继承Thread类 1. **创建子类**:首先,我们需要创建一个新的类,该类继承自Java的`Thread`类。这样,我们的类就拥有了`...
本篇将探讨两种在Java中实现多线程数据共享的方式:通过内部类和实现`Runnable`接口。 首先,让我们来看看如何使用`Runnable`接口实现数据共享。`Runnable`接口是Java提供的一种创建线程的方式,它允许我们将线程的...
总结来说,Java中的`Thread`类和`Runnable`接口提供了两种创建多线程的方式,它们都可用于实现阶乘计算。理解这些基础概念是进行并发编程的关键,也是提升程序效率的重要手段。在实际应用中,应根据项目需求和最佳...
在Java中实现多线程有两种主要方式:一种是继承`Thread`类;另一种是实现`Runnable`接口。本文将深入探讨这两种方法的区别,帮助初学者更好地理解并选择适合场景的多线程实现方案。 #### 一、继承Thread类 1. **...
在Java中,线程并发可以通过多种方式实现,包括继承Thread类、实现Runnable接口以及使用ExecutorService和Future等高级API。下面将详细探讨这些知识点。 首先,Java中创建线程主要有两种方法。一种是通过继承Thread...
### Java线程入门知识点详解 #### 一、Java线程基础知识概述 **1.1 什么是线程?** 线程是程序执行流的最小单元,是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。在Java中...
总之,Java线程的实现可以通过继承`Thread`类或实现`Runnable`接口。这两种方法的核心都是重写`run()`方法,定义线程执行的任务。在多线程环境下,确保线程安全至关重要,可以使用`synchronized`关键字或其他并发...