`

线程的两种创建方式与火车售票demo

阅读更多
 1.继承Thread类,重写run方法
 创建形式如下:
public class MyThread extends Thread {
	private int times = 5 ; 
	private String name;
	
	public MyThread(String name){
		this.name = name;
	}

	@Override
	public void run() {
		while(times > 0){
			times--;
			System.out.println(name + "售出一张票:" + times);
		}
	}
	
}

 

public class TestThread {

	public static void main(String[] args) {
		
		MyThread trd1 = new MyThread("窗口一");
		MyThread trd2 = new MyThread("窗口二");
		MyThread trd3 = new MyThread("窗口三");
		
		trd1.start();
		trd2.start();
		trd3.start();
		
	}
}

 

 2.实现Runnable接口,重写run方法

    实现形式如下:
public class MyRunnable implements Runnable { private int times = 5 ; @Override public void run() { while(times > 0){ times--; System.out.println(Thread.currentThread().getName() + "售出一张票:" + times); } } }

 

public class MyRunnable implements Runnable { 
  private int times = 5 ; 
  @Override 
  public void run() { 
    while(times > 0){ times--;
     System.out.println(Thread.currentThread().getName() + "售出一张票:" + times);
    } 
  } 
}

public class TestRunnable {
	public static void main(String[] args) {
		MyRunnable mrt1 = new MyRunnable();
		
		Thread t1 = new Thread(mrt1,"窗口一");
		Thread t2 = new Thread(mrt1,"窗口二");
		Thread t3 = new Thread(mrt1,"窗口三");
		
		t1.start();
		t2.start();
		t3.start();
	}
}

 

 

分享到:
评论

相关推荐

    使用多线程模拟火车站售票系统

    在本文中,我们将深入探讨如何使用多线程技术来模拟火车站售票系统,主要涉及C++编程语言中的线程同步和Windows编程。多线程技术在处理并发任务时能显著提高程序效率,尤其在大型系统中,如火车站售票系统,它需要...

    多线程设计一个火车售票模拟程序

    "多线程设计一个火车售票模拟程序" 在本实验中,我们将使用 Java 语言来设计一个火车售票模拟程序。这个程序模拟了火车站中的售票情况,具有5个售票点,每个售票点都可以售出火车票。我们将使用多线程技术来实现这...

    火车票售票系统 创建多线程

    ### 火车票售票系统创建多线程 在计算机科学领域中,多线程技术被广泛应用于提高软件系统的响应速度、并发处理能力和资源利用率。本文将基于给定的代码片段,详细介绍如何在一个简单的火车票售票系统中实现多线程。...

    线程同步解决火车站售票问题

    5. **公平与非公平策略**:线程同步机制通常有两种策略,公平策略意味着线程按照等待的顺序获取资源,而非公平策略则不保证这一点。在火车站售票问题中,可能更倾向于公平策略,让等待时间长的售票处优先获取资源。 ...

    线程的各种使用方式Demo

    在IT行业中,线程是操作系统分配CPU执行时间的...通过上述知识点,"线程的各种使用方式Demo"可能涵盖了线程的创建、管理、同步、通信等多个方面,有助于开发者深入理解线程的使用,并在实际项目中高效地利用多线程。

    kafka demo 两种线程消费方式

    【标题】"Kafka Demo 两种线程消费方式"展示了在Kafka中处理消息的两种常见线程模型,这是理解Kafka消费者工作原理的关键部分。Kafka是一个分布式流处理平台,用于构建实时数据管道和应用,它允许生产者发布消息到...

    Qt创建线程的两种方式+线程池方式

    1.方式1:继承 QThread 类方式:...两种方式的选择取决于具体的需求和设计。仅需简单的线程操作,继承 QThread 类方式可能更为简洁。如果需要更灵活的线程控制和对象交互,使用类对象的 moveToThread() 方式可能更适合

    java多线程Demo

    在Java中,实现多线程有两种主要方式:继承Thread类和实现Runnable接口。 1. 继承Thread类: 当我们创建一个新的类,让它继承Thread类时,可以通过重写`run()`方法来定义线程执行的任务。然后创建该类的对象,并...

    多线程火车售票

    System.out.println(Thread.currentThread().getName()+"线程出售的是第"+ num-- +"张火车票!"); } } public static void main(String[] args) { SaleTickets s = new SaleTickets(); //:窗口...

    java用线程两种方式

    在Java中,创建和使用线程主要有两种方式,一种是继承Thread类,另一种是实现Runnable接口。这两种方式在使用上有一些区别,每种方式都有其特定的用法和特点。 首先,继承Thread类的方式。通过继承Thread类来创建...

    kafka demo ,两种线程消费方式

    在本文中,我们将深入探讨Apache Kafka的两种线程消费方式,这是基于提供的标题"Kafka Demo,两种线程消费方式"。Kafka是一种分布式流处理平台,广泛用于实时数据处理和消息传递。在这个示例中,我们将关注如何使用...

    多线程模拟汽车司机与售票员同步

    在本实验中,我们探讨了如何使用C语言和Windows API实现多线程来模拟汽车司机与售票员的同步操作。这个实验旨在展示并发执行的线程如何通过同步机制协同工作,确保程序的正确运行。 首先,多线程是操作系统中的一种...

    MFC创建多线程(工作者线程)demo

    本篇文章将深入探讨如何在MFC中创建多线程,特别是工作者线程,并且会针对`AfxBeginThread`和`BeginThread`两种方法进行比较。 首先,我们来看标题所提到的“MFC创建多线程(工作者线程)demo”。工作者线程通常...

    JAVA多线程售票系统

    JAVA多线程售票系统 本资源摘要信息将围绕JAVA多线程售票系统展开,涵盖多线程编程、同步机制和售票系统的设计思想。 多线程编程 在JAVA中,多线程编程是指在一个程序中使用多个线程来执行不同的任务,以提高程序...

    线程的创建与撤销

    本文将根据给定的文件内容,详细阐述如何在Windows系统环境中创建与撤销线程,并通过一个具体的实验案例——利用两个线程模拟火车票销售系统来进一步加深理解。 #### 二、线程的概念与作用 在介绍具体的实验内容...

    Qt 多线程及简单实例 demo

    Qt 多线程及简单实例 demo。 多线程的几大特点: 1.多线程的执行顺序无法保证,与操作系统的调度策略和线程优先级等因素有关。 2.多线程的切换可能发生在任何时刻、任何地点。 3.多线程对代码的敏感度高,因此对...

    用C++编写的火车售票系统

    1. **面向对象编程**:C++是一种支持面向对象编程(OOP)的语言,火车售票系统设计时,可以将火车、车厢、座位等作为类,通过封装、继承和多态性来模拟真实世界的情景。例如,创建`Train`类表示火车,`Carriage`类...

    线程创建和管理

    Thread类是C#中另一种创建线程的方式,使用Thread类可以创建一个独立的线程,该线程有它独立的执行路径,能够与其它的线程同时地运行。 使用Thread类创建线程需要手动地创建和管理线程,这需要开发者有充分的线程...

    Delphi多线程Demo

    在这个“Delphi多线程Demo”中,我们将探讨如何在Delphi中创建和管理线程,以及如何实现在线程中定时刷新任务,以保持用户界面的响应性。 首先,我们需要理解多线程的基本概念。在单线程程序中,所有任务都在同一个...

    简单的java线程demo

    在Java中,有两种主要的方式来创建线程:继承Thread类和实现Runnable接口。下面我们将详细讨论这两个方法。 1. 继承Thread类: 当一个类继承了Thread类,那么这个类就具备了创建线程的能力。我们只需要重写Thread类...

Global site tag (gtag.js) - Google Analytics