【Java编程学习】案例8-4 模拟12306售票
本案例要求编写一个模拟12306售票的系统,要求如下:假设需要抢票十次才可以抢到一张票,会员需要300毫秒抢一次,普通用户需要800毫秒抢一次。
代码如下
package lianxi;//模拟12306售票import java.lang.*;public class Lianxi28 {public static void main(String[] args) {Ticket a=new Ticket();new Thread(a,"普通用户").start();new Thread(a,"会员").start();}
}class Ticket implements Runnable{ public int l=1;//目前该买第几张了,总共10张票public int usernumber=0;//普通用户抢票次数public int vipnumber=0;//会员抢票次数Object lock=new Object();//定义锁public void run() {while(true){ synchronized (lock) { if(l>10) {break;} if(Thread.currentThread().getName().equals("普通用户")) {usernumber++; try{Thread.sleep(800);//800毫秒抢一次 }catch(InterruptedException e){e.printStackTrace();}if(usernumber==10) {//抢够10次可以抢到一张票System.out.println(Thread.currentThread().getName()+"购买到了第"+l+"张票");usernumber=1;l++; }if(l<=10) {System.out.println("普通用户本轮第"+usernumber+"次抢票");}try{Thread.sleep(100); // 当前线程休眠0.1秒 }catch(InterruptedException e){e.printStackTrace();}}else {vipnumber++;try{Thread.sleep(300);//300毫秒抢一次 }catch(InterruptedException e){e.printStackTrace();}if(vipnumber==10) {//抢够10次可以抢到一张票System.out.println(Thread.currentThread().getName()+"购买到了第"+l+"张票");vipnumber=1;l++; }if(l<=10) {System.out.println("会员本轮第"+vipnumber+"次抢票"); }try{Thread.sleep(100); // 当前线程休眠0.1秒 }catch(InterruptedException e){e.printStackTrace();}} } }}
}
运行结果:
【Java编程学习】案例8-4 模拟12306售票相关推荐
- Zookeeper 4 Zookeeper JavaAPI 操作 4.9 模拟12306 售票案例
Zookeeper [黑马程序员Zookeeper视频教程,快速入门zookeeper技术] 文章目录 Zookeeper 4 Zookeeper JavaAPI 操作 4.9 模拟12306 售票案 ...
- java编程学习入门
java编程学习入门 自java出来之后,就被很多人欢迎,虽然开始的时候有点麻烦,但是发展到现在很多人企业都在使用java做一些应用,包括了一些政府部门,因此java工程师需求也越来越大了.那么下面小 ...
- 江阴 java_江阴学java编程,江阴java编程学习哪里好,江阴java编程学习一般要多久才能学会...
江阴学java编程,江阴java编程学习哪里好,江阴java编程学习一般要多久才能学会 首页 > 软件 > 江阴学java编程 作者:镀金池 发布时间:2019-02-14 11:40 ...
- java收费学java,讷河学java编程,讷河java编程学习的学校,讷河java编程学习一般怎么收费...
讷河学java编程,讷河java编程学习的学校,讷河java编程学习一般怎么收费 首页 > 软件 > 讷河学java编程 作者:镀金池 发布时间:2019-02-20 07:00 Gr ...
- 莆田Java开发_莆田学java编程,莆田java编程学习学校,莆田java编程学习一般能拿多少工资...
莆田学java编程,莆田java编程学习学校,莆田java编程学习一般能拿多少工资 首页 > java > 莆田学java编程 作者:镀金池 发布时间:2017-10-18 06:51 ...
- Zookeeper命令操作(初始Zookeeper、JavaAPI操作、分布式锁实现、模拟12306售票分布式锁、Zookeeper集群搭建、选举投票)
Zookeeper命令操作(初始Zookeeper.JavaAPI操作.分布式锁实现.模拟12306售票分布式锁.Zookeeper集群搭建.选举投票) 1.初始Zookeeper Zookeeper ...
- Java编程学习并不难,有坚持的动力与良好的心态尤为重要
时间过得很快,回想刚学习Java编程开发的懵懂无知,到现在可以做出简单的项目,可以明显的感觉到自己确实进步了.Java编程其实并不难学,难的是你能够一如既往的保持好的学习态度,并愿意努力的去背.去记. ...
- Java编程学习:初学者怎样学好Java
零基础学生只要方法得当,完全可以掌握Java编程.这里也是我个人的学习经历下面总结出来的几点学习Java的方法,仅供大家参考. 1.理解Java思想 Java是一门面向对象编程语言.向对象编程是Jav ...
- Java编程学习笔记(一)
编程学习笔记--JAVA背景(一) 文章目录 编程学习笔记--JAVA背景(一) 编程学习笔记--JAVA注意事项(二) (一)从Hello world 开始: (二) Java 开发注意事项和细节说 ...
最新文章
- 启动jar包 服务方式
- mybatis 如何判断重复插入_MyBatis常见面试题3:数据库插入重复如何处理
- Blazor University (7)组件 — 双向绑定
- JDBC元数据操作(一)-- DatabaseMetaData接口详解
- java的原生数据类型_Java中的8种原生数据类型(Primitive Data Types)分析
- linux指令:echo, head, tail
- Html.RenderPartial使用三个参数
- 设计模式-创建型模式-模板方法
- VB.NET工作笔记003---使用ASP_vbs脚本_或vb.net调用Sqlserver DTS文件
- pytorch创建tensor
- 进度计划管理软件 PowerPlan (包含GRID,甘特图,直方图,网络图,跟踪逻辑,时标概要图等功能)
- 易语言-通过快捷方式.lnk文件获取.exe源文件地址
- android随手记(持续更新)
- 在Qt中设置程序图标的方法介绍
- Axure RP8 授权码亲测可用
- canu三代组装软件安装
- 机器学习(周志华) 参考答案 第十四章 概率图模型 14.9
- LeetCode 188. Best Time to Buy and Sell Stock IV(股票买卖)
- 高职高考数学可以用计算机吗,什么学习水平高职高考数学可以答满分
- A simple but tough-to-beat baseline for sentence embedding
热门文章
- python 抖音第三方登录_前后端分离抖音第三方授权登录
- Mask Rcnn tensorflow(keras前端)模型 c++预测 windows系统
- 分解连续自然数的和_[算法]正整数分解为几个连续自然数之和
- 顺序结构程序设计例题:从键盘输入梯形的上、下底边长度和高,计算梯形的面积。
- 毕业设计 stm32自动泊车系统 智能小车
- AI 工具合辑盘点,总有一款适合你
- 四旋翼无人机调试时,电机滴滴滴响问题及解决办法汇总
- 西门子水处理1200PLC程序模板 Plc程序包含功能块,功能块为SCL编写 含模拟量换算功能块
- DaisyDisk怎样以管理员身份扫描磁盘或文件夹
- 如何实现Jmeter录制脚本