题目:

编写一个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实验(多线程买票)相关推荐

  1. Java之多线程买票程序

    Java之多线程买票程序 1.要求 要求五个线程,分别命名为售票窗口1.售票窗口 2.......售票窗口5, 一共100张票,每个售票窗口卖票的数量大致相同(20)张卖票时给与编号,每张票唯一. 每 ...

  2. java模拟多线程买票问题

    多线程买票是java中的一个经典案例,其主要思想无非包括2点,synchronized和锁,两者中,前者实现同步,后者为同步的线程提供锁,从而实现多个线程共享同一份资源时候,能够同步进行; 经典的方式 ...

  3. java 实现多线程买票

    今天同桌问了一个我一个多线程的问题,其实很简单,但是,我没有马上解决 今天记录一下, synchronized 加锁,有一点小心的是,这个只能对对象加锁,因为所有的对象的父亲都是object 其中on ...

  4. java 买票 多线程_java多线程买票问题

    自己写了一个多线程买票的实例,运行结果也对了,但是自己解释不了,谁能帮忙解释一下为什么结果会正确?import java.util.concurrent.ExecutorService; import ...

  5. java多线程买票实例

    3个窗口同时买票 * * 同步: * 1:同步代码块 * synchronized(锁对象(唯一)){ * * -需要被同步的代码 * * } * 2:同步方法 * 修饰符 synchronized ...

  6. java实验多线程机制_JAVA 多线程机制(一)

    PS:又开始忙叨JAVA了..前一阵子搞定了HTML+CSS,要开始写实验室的界面了,真没劲...博客到时候再更新吧! 先更新JAVA的吧... 多线程(一) 主要内容 1.JAVA中的线程 2.用T ...

  7. java模拟火车站买票的过程_Java常用代理

    在我们通常的应用中,代理模式也是我们常用的设计模式之一.所谓的代理模式是指客户端并不直接调用实际的对象,而是通过调用代理对象,来间接的调用实际的对象. 为什么要采用这种间接的形式来调用对象呢?一般是因 ...

  8. 合工大 程序设计艺术 实验六 买票问题

    题目 电影院卖电影票,但是没有零钱找,票价一张 5 元,买票的人为 n 个持有 5 元,m 个持 有 10 元,求解出可能的买票序列的个数,使得电影院能够将票卖完. 解题思路 买票问题是卡特兰数的经典 ...

  9. java实验多线程机制_使用Java多线程的同步机制编写应用程序 PDF 下载

    使用Java多线程的同步机制编写应用程序 PDF 下载 本站整理下载: 相关截图: 主要内容: 一. 实验名称 使用Java多线程的同步机制编写应用程序 二. 实验目的及要求 1.理解并行/并发的概念 ...

最新文章

  1. php mysql insert数组_PHP – MySQL编写的INSERT数组语句
  2. python可变交换性能优化
  3. 《贝叶斯思维:统计建模的Python学习法》——1.8 讨论
  4. eolinker 相关
  5. anaconda中的python如何进行关联分析_浅析python,PyCharm,Anaconda三者之间的关系
  6. 4g ecgi 编码_4G学习之IMSI附着
  7. python django框架分析_Django框架模型简单介绍与使用分析
  8. JSP中文乱码分析和解决
  9. 行云管家堡垒机的使用方法之二——新增登录凭证
  10. iOS UITableView的使用 (选自oschina)
  11. EfficientDet:COCO 51.0 mAP!谷歌大脑提出目标检测新标杆
  12. python编写一个程序、计算字符串中子串出现的次数_急求。。。C语言实现,计算字符串中子串出现的次数,就是先输入一个字符串,再输入一个上面字符串中存在...
  13. 游戏设计规则探秘之提高动词的健壮性
  14. python2项目出现的错误(UnicodeDecodeError)
  15. “物联网开发实战”学习笔记-(一)硬件开发环境的搭建
  16. SCRT软件的使用教程
  17. 计算机控制环境下审计风险研究,计算机审计风险研究
  18. 计算机单位kb和m比较,G、GB、KB、M和MB是怎么回事?
  19. 华为 - 路由交换基础
  20. 工业级POE交换机、企业级交换机、普通交换机之间各区别?

热门文章

  1. SAP 邮件发送smartform(转成PDF附件)实例
  2. 【angular-实践】导入/导出excel
  3. 苹果手机群控免越狱手机投屏
  4. OSM地图本地发布(五)-----Geoserver发布海洋图层
  5. 去除Html换行引起的空格问题
  6. python smtplib模块_Python模块学习 ---- smtplib模块
  7. 在央企当程序员是一种怎样的体验?
  8. linux内存的反向映射
  9. 【IoT】加密与安全:ECC 算法基础原理浅析
  10. C#自作lol登陆界面(功能:连接sql数据库,注册,登陆,修改密码。)