java实验(多线程买票)
题目:
编写一个Java多线程应用程序,完成三个售票窗口同时出售20张票。具体要求如下:票数要使用同一个静态值;为保证不会出现卖出同一个票数,要java多线程同步锁。
设计思路
创建一个站台类Station,继承接口Runnable,重写run方法,在run方法里面执行售票操作。售票要使用同步锁:即有一个站台卖这张票时,其他站台要等这张票卖完。
创建主方法调用类。
代码
import java.awt.*;
import java.lang.*;
import java.util.Random;
public class Station implements Runnable{int ticket=20;public void run(){while(ticket>0)//同步锁{synchronized(this) {if(ticket>0){System.out.println(Thread.currentThread().getName()+"卖出第"+(21-ticket--)+"张票");}else{System.out.println("票已售完,请下次再来!");System.exit(0);}}try {Thread.sleep(50);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
}
public class main {public static void main(String[] args) {// TODO Auto-generated method stubStation station=new Station();Thread a,b,c;a=new Thread(station,"窗口1");b=new Thread(station,"窗口2");c=new Thread(station,"窗口3");a.start();b.start();c.start();}
}
注意:这里 sleep()函数一定要放在synchronized同步锁代码块的外面,不然程序运行时永远只是单一线程在运行。
运行结果
java实验(多线程买票)相关推荐
- Java之多线程买票程序
Java之多线程买票程序 1.要求 要求五个线程,分别命名为售票窗口1.售票窗口 2.......售票窗口5, 一共100张票,每个售票窗口卖票的数量大致相同(20)张卖票时给与编号,每张票唯一. 每 ...
- java模拟多线程买票问题
多线程买票是java中的一个经典案例,其主要思想无非包括2点,synchronized和锁,两者中,前者实现同步,后者为同步的线程提供锁,从而实现多个线程共享同一份资源时候,能够同步进行; 经典的方式 ...
- java 实现多线程买票
今天同桌问了一个我一个多线程的问题,其实很简单,但是,我没有马上解决 今天记录一下, synchronized 加锁,有一点小心的是,这个只能对对象加锁,因为所有的对象的父亲都是object 其中on ...
- java 买票 多线程_java多线程买票问题
自己写了一个多线程买票的实例,运行结果也对了,但是自己解释不了,谁能帮忙解释一下为什么结果会正确?import java.util.concurrent.ExecutorService; import ...
- java多线程买票实例
3个窗口同时买票 * * 同步: * 1:同步代码块 * synchronized(锁对象(唯一)){ * * -需要被同步的代码 * * } * 2:同步方法 * 修饰符 synchronized ...
- java实验多线程机制_JAVA 多线程机制(一)
PS:又开始忙叨JAVA了..前一阵子搞定了HTML+CSS,要开始写实验室的界面了,真没劲...博客到时候再更新吧! 先更新JAVA的吧... 多线程(一) 主要内容 1.JAVA中的线程 2.用T ...
- java模拟火车站买票的过程_Java常用代理
在我们通常的应用中,代理模式也是我们常用的设计模式之一.所谓的代理模式是指客户端并不直接调用实际的对象,而是通过调用代理对象,来间接的调用实际的对象. 为什么要采用这种间接的形式来调用对象呢?一般是因 ...
- 合工大 程序设计艺术 实验六 买票问题
题目 电影院卖电影票,但是没有零钱找,票价一张 5 元,买票的人为 n 个持有 5 元,m 个持 有 10 元,求解出可能的买票序列的个数,使得电影院能够将票卖完. 解题思路 买票问题是卡特兰数的经典 ...
- java实验多线程机制_使用Java多线程的同步机制编写应用程序 PDF 下载
使用Java多线程的同步机制编写应用程序 PDF 下载 本站整理下载: 相关截图: 主要内容: 一. 实验名称 使用Java多线程的同步机制编写应用程序 二. 实验目的及要求 1.理解并行/并发的概念 ...
最新文章
- php mysql insert数组_PHP – MySQL编写的INSERT数组语句
- python可变交换性能优化
- 《贝叶斯思维:统计建模的Python学习法》——1.8 讨论
- eolinker 相关
- anaconda中的python如何进行关联分析_浅析python,PyCharm,Anaconda三者之间的关系
- 4g ecgi 编码_4G学习之IMSI附着
- python django框架分析_Django框架模型简单介绍与使用分析
- JSP中文乱码分析和解决
- 行云管家堡垒机的使用方法之二——新增登录凭证
- iOS UITableView的使用 (选自oschina)
- EfficientDet:COCO 51.0 mAP!谷歌大脑提出目标检测新标杆
- python编写一个程序、计算字符串中子串出现的次数_急求。。。C语言实现,计算字符串中子串出现的次数,就是先输入一个字符串,再输入一个上面字符串中存在...
- 游戏设计规则探秘之提高动词的健壮性
- python2项目出现的错误(UnicodeDecodeError)
- “物联网开发实战”学习笔记-(一)硬件开发环境的搭建
- SCRT软件的使用教程
- 计算机控制环境下审计风险研究,计算机审计风险研究
- 计算机单位kb和m比较,G、GB、KB、M和MB是怎么回事?
- 华为 - 路由交换基础
- 工业级POE交换机、企业级交换机、普通交换机之间各区别?