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

多线程--简单的卖票程序

 
阅读更多


/**

多线程--简单的卖票程序 

多个窗口同时卖票


创建线程的第一种方式 继承Thread类

1.子类覆盖父类中的run方法,将线程运行的代码存放在run中

2.建立子类对象的同时 线程也被创建

3.通过调用start方法开启线程


创建线程的第二种方式  实现Runnable接口

1.定义类实现Runnable接口

2.覆盖Runnable接口中的run方法。

将线程要运行的代码存放在该run方法中

3.通过Thread类建立线程对象。

4.将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数。

因为,自定义的run方法所属的对象是Runnable接口的子类对象

所以要让线程去执行指定对象的run方法,就必须明确该run方法所属的对象

5.调用Thread类的start方法开启线程并调用Runnable接口子类的run方法


实现方式和继承方式有什么区别?

实现方式:避免了单继承的局限性

在定义线程时,建议使用实现方式

两种方式的区别:

继承Thread:线程代码存放Thread子类的run方法中

实现Runnable:线程代码存放在接口的子类的run方法中

*/


class Ticket implements Runnable//extends Thread

{

private int ticketNum = 100;

public void run(){

while(ticketNum>0){

System.out.println(Thread.currentThread().getName()+

":sale..." + ticketNum--);

}

}


}


class  TicketDemo

{

public static void main(String[] args) 

{


Ticket t = new Ticket();


Thread t1 = new Thread(t);//创建了一个线程

Thread t2 = new Thread(t);//创建了一个线程

Thread t3 = new Thread(t);//创建了一个线程

Thread t4 = new Thread(t);//创建了一个线程

t1.start();

t2.start();

t3.start();

t4.start();

/**

Ticket t1 = new Ticket();

Ticket t2 = new Ticket();

Ticket t3 = new Ticket();

Ticket t4 = new Ticket();

t1.start();

*/


}

}


分享到:
评论

相关推荐

    duoxiancheng.rar_多线程_多线程卖票

    文件“duoxiancheng.txt”很可能是该项目的源代码或者详细说明,包含了如何实现这个多线程卖票程序的具体步骤。分析这个文件可以帮助我们更好地理解如何在实际编程中应用这些概念和技术。 总结来说,多线程技术是...

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

    "多线程设计一个火车售票模拟程序" 在本实验中,我们将使用 Java 语言来设计一个火车售票模拟程序。这个程序模拟了火车站中的售票情况,...这个程序可以作为一个简单的示例,展示了多线程技术在实际应用中的重要性。

    java实现多线程卖票功能

    在本文中,我们将通过一个简单的示例程序,来详细介绍如何使用Java实现多线程卖票功能。 首先,需要了解Java中多线程编程的基础知识。在Java中,有两种方式可以实现多线程:继承Thread类和实现Runnable接口。在本文...

    OC多线程管理

    多线程允许程序同时执行多个任务,提升用户体验,尤其是在处理耗时操作如网络请求、大数据计算或数据库操作时。本知识点将深入探讨OC多线程的基本概念、主要实现方式以及实际应用。 一、基本概念 1. 主线程:应用...

    JavaSE 多线程必背程序清单

    【JavaSE 多线程必背程序清单】 在Java编程中,多线程是提高程序效率和并发性能的重要手段。本文将详细解析多线程的两种创建方式及其优势,以及线程在内存中的状态,并通过一个购票示例引出多线程安全问题。 **1. ...

    简单实现多线程同步示例(模拟购票系统)

    本示例“简单实现多线程同步示例(模拟购票系统)”旨在通过一个具体的实例,帮助开发者理解如何在Java中创建并管理多线程以及如何实现线程同步,确保数据的一致性和正确性。 首先,我们要明确多线程的基本概念。在...

    Java多线程程序设计

    ### Java多线程程序设计 #### 一、实验目的与背景 在计算机科学领域,多线程编程是一种广泛采用的技术,用于提高程序的执行效率和响应能力。在Java语言中,多线程的支持非常强大且易于使用。通过本实验的学习,你...

    Java 多线程 订票 示例 线程安全

    在Java编程中,多线程是并发编程的重要组成部分,它允许多个任务同时执行,从而提高应用程序的效率和响应速度。然而,多线程环境下的数据共享和操作可能会引发线程安全问题,如果不正确处理,可能导致数据不一致、...

    简单的多线程同步实例

    在编程领域,多线程是实现并发执行任务的重要机制,特别是在多核处理器系统中,它能有效利用系统资源,提高程序的执行效率。本实例主要关注如何在Java中实现简单的多线程同步,以模拟一个售票系统的操作。在这个系统...

    Java多线程同步具体实例.doc

    Java多线程同步是编程中一个非常重要的概念,特别是在并发编程中,用于解决多个线程访问共享资源时可能引发的数据不一致问题。本实例通过一个简单的火车票售票系统来演示同步机制的应用。 在这个实例中,我们创建了...

    Java多线程模拟售票程序和线程安全问题

    首先,让我们了解一下多线程模拟售票程序的需求:模拟3个窗口同时在售100张票。这个需求看似简单,但事实上隐藏了两个重要的问题:为什么100张票被卖出了300张票?如何解决线程安全问题? 问题1:为什么100张票被卖...

    c#线程同步

    在多线程环境中,每个线程都可以独立地执行任务,从而提高应用程序的并发性能。 然而,当多个线程试图同时修改同一资源时,如果没有适当的同步机制,就会出现竞态条件(race condition),导致结果不确定或错误。为...

    零起点打开ja-va世界的大门视频-第二阶段视频-day11

    在Java编程语言中,多线程是核心特性之一,它使得程序可以同时执行多个任务,提高了计算机系统的资源利用率和效率。本课程“零起点打开ja-va世界的大门视频-第二阶段视频-day11”专注于Java基础中的多线程概念,帮助...

    线程同步编程实例

    在多线程编程中,线程同步是一种控制多个线程并发执行的技术,以避免数据竞争和其他潜在的问题。本文将深入探讨线程同步的概念,并通过一个简单的“售票”实例来阐述如何在Java中实现线程同步。 线程同步的目的是...

    总结Java中线程的状态及多线程的实现方式

    System.out.println(Thread.currentThread().getName() + " 卖票:ticket" + this.ticket--); } } } } public class Main { public static void main(String[] args) { MyRunnable task = new MyRunnable(); ...

    Java并发编程之常用的多线程实现方式分析

    多线程编程是指在一个程序中可以同时执行多个线程,从而提高程序的执行效率和响应速度。在Java语言中,实现多线程编程的方式有多种,本文将主要介绍两种常用的多线程实现方式:继承Thread类和实现Runnable接口。 一...

    浅谈Java多线程的优点及代码示例

    Java多线程是一种编程技术,允许程序同时执行多个任务,从而提高资源利用率、简化程序设计并加快程序响应速度。在Java中,多线程通过创建线程对象来实现,每个线程代表程序中的一个独立执行流。 **资源利用率更好**...

    笔试Java3答案.doc

    多线程是指允许在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间互相独立。线程又称为轻量级进程,它和进程一样拥有独立的执行控制,由操作系统负责调度,区别在于线程没有独立的存储空间,而是和所属...

    java笔试程序分类总结

    ts > 0) { System.out.println(Thread.currentThread().getName() + " 卖第 " + (100 - tickets + 1) + " 张票 "); tickets--; } } } // 测试类 class Test { public static void main(String[] args) { SaleTicket ...

    Java软件开发实战 Java基础与案例开发详解 12-4 线程的同步 共15页.pdf

    比如,在奥运门票销售系统的例子中,五个销售点共同销售100张门票,如果不进行同步控制,则可能有两个销售点同时卖出同一张票,这显然是不可接受的。 #### 12.4.2 同步方法 - **同步方法**:`synchronized`关键字...

Global site tag (gtag.js) - Google Analytics