/** *@authorleno *售票类 */ class SaleTicket implements Runnable { int tickets = 100; public void run() { while (tickets > 0) { sale(); //或者下面这样实现 // synchronized (this) { // if (tickets > 0) { // System.out.println(Thread.currentThread().getName() + "卖第" // + (100 - tickets + 1) + "张票"); // tickets--; // } // } } } public synchronized void sale() { if (tickets > 0) { System.out.println(Thread.currentThread().getName() + "卖第" + (100 - tickets + 1) + "张票"); tickets--; } } } public class TestSaleTicket { public static void main(String[] args) { SaleTicket st = new SaleTicket(); new Thread(st, "一号窗口").start(); new Thread(st, "二号窗口").start(); new Thread(st, "三号窗口").start(); new Thread(st, "四号窗口").start(); } }
发表评论
-
全排列3
2009-06-04 02:26 656public class FullArray ...{ ... -
全排列2
2009-06-04 02:09 733package com.syj.csdn; impo ... -
全排列
2009-06-04 02:07 776算法1 一个经典的全排列算法zz2007-06-1 ... -
Java排序问题
2009-04-27 20:04 734package com.softeem.jbs.lesso ... -
水仙花数
2009-04-15 21:28 1173public class StaticClass{ ... -
百钱百鸡
2009-04-15 21:27 764public class ma { public s ... -
猴子吃桃
2009-04-15 21:25 852/*public class Chitao { publ ... -
用dom4j组件解析如下XML格式的文件:
2009-04-15 21:18 802<?xml version="1.0&qu ... -
做一个饲养员给动物喂食物的例子体现JAVA中的面向对象思
2009-04-15 21:16 4917interface Animal { publ ... -
做一个单子模式的类,只加载一次属性文件
2009-04-15 21:14 1031import java.io.FileInputStrea ... -
拷贝一个目录(文件)到指定路径
2009-04-15 21:12 1020/** *拷贝一个目录或者文件到指定路径下 ... -
用JAVA中的多线程示例银行取款问题
2009-04-15 21:09 2036/** *@authorleno *账户类 * ... -
用JAVA中的多线程示例生产者和消费者问题
2009-04-15 21:05 763class Producer implements Run ... -
编程实现序列化的Student(sno,sname)对象
2009-04-15 21:03 935import java.io.IOException; ... -
二分查找特定整数在整型数组中的位置
2009-04-15 21:00 816/** *二分查找特定整数在整型数组中的位置( ... -
获得任意一个int类型的阶乘
2009-04-15 20:59 864/** *获得任意一个整数的阶乘 ... -
将某个日期以固定格式转化成字符串
2009-04-15 20:56 885/*将某个日期以固定格式转化成字符串 ... -
一般的正弦曲线
2009-04-15 20:31 745import java.applet.*; import ... -
线程的正弦函数
2009-04-15 20:27 829import java.awt.*; import ja ... -
画星的两个方法
2009-04-14 23:26 716方法一: public class T { ...
相关推荐
在本文中,我们将深入探讨如何使用多线程技术来模拟火车站售票系统,主要涉及C++编程语言中的线程同步和Windows编程。多线程技术在处理并发任务时能显著提高程序效率,尤其在大型系统中,如火车站售票系统,它需要...
Java多线程是Java编程中的重要概念,尤其在开发高性能、高并发的应用中不可或缺。本示例旨在为初学者提供一个全面理解Java多线程的起点。通过学习这个实例,你可以掌握如何创建和管理线程,理解线程同步与通信的重要...
在这个“线程同步解决火车站售票问题”的例子中,我们可以通过线程同步机制来实现售票的有序、无冲突的过程。 首先,我们需要理解问题的核心:10个售票处(线程)需要共享1000张票(资源),并且每卖出一张票,必须...
这个程序模拟了火车站中的售票情况,具有5个售票点,每个售票点都可以售出火车票。我们将使用多线程技术来实现这个程序,使得每个售票点可以独立地售出火车票。 多线程设计 在 Java 中,我们可以使用 Thread 类来...
Java中的多线程有三种实现方式: 1.继承Thread类,重写run方法。Thread本质上也是一个实现了Runnable的实例,他代表一个线程的实例,并且启动线程的唯一方法就是通过Thread类的start方法。 2.实现Runnable接口,并...
### JAVA多线程编程案例——火车站售票系统 #### 概述 本文档通过设计一个简单的Java多线程机制实现了一个火车站售票系统的模拟程序。该系统主要用于演示如何在Java中使用多线程技术来处理并发访问资源的问题,并...
现在,让我们来看一个简单的订票系统的Java多线程示例。假设我们有一个票务系统,其中的`TicketService`类包含一个`tickets`变量表示剩余票数: ```java public class TicketService { private int tickets = 100;...
本文将基于"java 多线程并发实例"这个主题,深入探讨Java中的多线程并发概念及其应用。 首先,我们要了解Java中的线程。线程是程序执行的基本单元,每个线程都有自己的程序计数器、虚拟机栈、本地方法栈,而共享堆...
在Java编程中,多线程是一项关键特性,它允许程序同时执行多个任务,提升系统效率。在处理耗时操作如大文件下载、数据处理或网络请求时,展示进度条能够提供用户友好的交互体验,让使用者了解任务的完成状态。本主题...
1. **多线程基础**:论文可能会首先介绍多线程的基本概念,解释为什么在JAVA中需要使用多线程,以及多线程如何提升程序的执行效率。这部分内容可能会涉及到线程的创建、启动、同步和通信等基础知识。 2. **JAVA多...
Java 多线程例子 Java 多线程是 Java 编程语言中的一种基本概念,它允许程序同时执行多个任务,从而提高程序的性能和效率。本文将通过三个实用的例子,讲解 Java 多线程的基本概念和使用方法。 第一个例子:创建多...
9.1 Java中的线程: Java程序中的线程是在操作系统级别的线程基础上进行抽象的。每个Java程序都有一个主线程,即由JVM启动并执行main方法的线程。线程代表了程序中的执行流,可以在不同的线程之间切换以共享CPU时间...
### JAVA中的单线程与多线程概念解析 #### 单线程的理解 在Java编程环境中,单线程指的是程序执行过程中只有一个线程在运行。这意味着任何时刻只能执行一个任务,上一个任务完成后才会进行下一个任务。单线程模型...
1. **多线程基础**:多线程是Java编程中的一个重要概念,允许程序同时执行多个任务。在本示例中,通过创建多个`Thread`对象并调用它们的`run()`方法来实现并行处理数据库操作。 2. **数据库连接管理**:在多线程...
1. 多线程编程:在JAVA中,多线程编程是指在一个程序中使用多个线程来执行不同的任务,以提高程序的性能和效率。 2. 同步机制:在多线程编程中,同步机制是非常重要的,以避免线程之间的竞争和资源的共享。 3. 售票...
Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式...
3. 多线程中的死锁与活锁 在多线程环境下,死锁是指两个或多个线程相互等待对方释放资源,导致它们都无法继续执行。活锁则是指线程不断重试获取资源,但由于其他线程持有资源不释放,导致线程陷入无限循环的状态。...
本文将基于给定的代码片段,详细介绍如何在一个简单的火车票售票系统中实现多线程。 #### 1. 多线程简介 多线程是指从软件或者硬件上实现多个线程并发执行的技术。程序执行时,进程可以创建多个线程,这些线程共享...
在Java中,应该使用更安全的方式来中断线程,比如设置共享变量、使用`interrupt()`方法或抛出异常。 线程的优先级也是一个重要概念,虽然在示例中没有深入讨论。Java线程的优先级范围是1(`Thread.MIN_PRIORITY`)...
在Java中,实现多线程有两种主要的方法:通过继承`Thread`类或者实现`Runnable`接口。 #### 继承Thread类 在本示例中,`ThreadUseExtends`类通过继承`Thread`类来创建一个新的线程。继承`Thread`类后,我们需要...