用多线程实现卖火车票
第一种:代码如下
package sell;
public class SellTicked extends Thread{
static int count=1000;//一千张票
static Object obj=new Object();
@Override
public void run() {while(true){try {//线程睡眠两秒Thread.sleep(2000);//线程同步锁synchronized(obj){if(count>0){//输出当前线程的nameSystem.out.println(this.getName()+"当前火车票号"+count--);}else {System.out.println("票卖完了");//退出System.exit(0);}}} catch (InterruptedException e) {e.printStackTrace();}}
}
//main方法运行
public static void main(String[] args) {SellTicked sc=new SellTicked();sc.setName("第一窗口");sc.start();SellTicked sc1=new SellTicked();sc1.setName("第二窗口");sc1.start();SellTicked sc2=new SellTicked();sc2.setName("第三窗口");sc2.start();
}
}
第二种
package sell;
public class SellTickedRunnable implements Runnable {
static int ticked = 1000;
static Object obj = new Object();
@Override
public void run() {
while(true){
try {
Thread.sleep(2000);
synchronized(obj){
if(ticked>0){
System.out.println(Thread.currentThread().getName()+“当前窗口火车票号”+ticked–);
}else{
System.out.println(“票卖完了”);
System.exit(0);
}
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {SellTickedRunnable sr=new SellTickedRunnable();Thread th=new Thread(sr);th.setName("第一窗口");th.start();SellTickedRunnable sr2=new SellTickedRunnable();Thread th2=new Thread(sr2);th2.setName("第二窗口");th2.start();SellTickedRunnable sr3=new SellTickedRunnable();Thread th3=new Thread(sr3);th3.setName("第三窗口");th3.start();
}
}
用多线程实现卖火车票相关推荐
- 使用多线程实现卖火车票
1.使用多线程实现三个窗口同时售票,用继承Thread方式 package com;import sun.applet.Main;public class Deamo extends Thread { ...
- java多线程实现卖火车票小案例同步代码块优先级守护线程
/*** * * @author 时光机jay * @version 1.8 * @since 2020/9/28 * * */ public class Test33 { s ...
- c++多线程实例(模拟卖火车票小程序)
//这是2个线程模拟卖火车票的小程序 #include <windows.h> #include <iostream> using namespace std;DWORD WI ...
- java多线程并发卖票问题
最近学习遇到了经典的多线程并发的卖票问题,在网上搜了一些答案,还是决定自己写一写看,于是就出现了这篇文章,希望对初学者有些帮助!!! package practice.threadsafe; /* 多 ...
- java多线程模拟购买火车票
java多线程模拟购买火车票 本次做的是一个火车票的售卖模拟,不管用户是在窗口还是APP上购买,必然不可能买到同一张票这也就是说一张票的售卖必然是一个线程在操作的,所以,我们在写代码是也要注意这一点 ...
- 线程java买火车票_Java线程中卖火车票问题的深入讲解
用java代码模拟卖100张火车票问题:四个售票窗口同时售票且不能卖出同一张火车票. 代码如下. package lesson; public class demo1 { public static ...
- 123063天两度瘫痪:为啥不在淘宝上卖火车票?
如题:123063天两度瘫痪:为啥不在淘宝上卖火车票? 铁路春运的大幕还没有完全拉开,铁路购票网站就已经踉踉跄跄,接连发生故障. "因机房空调系统故障,正在积极组织抢修.目前暂停互联网售票. ...
- java同步锁售票_Java基础学习笔记: 多线程,线程池,同步锁(Lock,synchronized )(Thread类,ExecutorService ,Future类)(卖火车票案例)...
学习多线程之前,我们先要了解几个关于多线程有关的概念. 进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能. 线程:线程是 ...
- java多线程卖火车票_Java多线程小例子(三个窗口卖火车票)
class Ticket implements Runnable{ private int TicketNum = 100; //100张火车票 private boolean flag = true ...
最新文章
- Qt 在Label上面绘制罗盘
- ssh: connect to host 192.168.57.131 port 22: Conne
- Apache ZooKeeper - Leader 选举 如何保证分布式数据的一致性
- 神策数据荣登《中国企业家》2019 中国科创企业百强榜
- 【源码】常用的人脸识别数据库以及上篇性别识别源码
- 数据集怎么导出_PCA算法 | 数据集特征数量太多怎么办?用这个算法对它降维打击...
- Fusion 360软件安装
- 智算时代里,浪潮存储的使命与担当
- vue 实现点击插入输入框_vue把输入框的内容添加到页面的实例讲解
- Js实现购物车加减,价格计算等功能
- 为什么用功率谱密度来描述随机信号?
- 一阶系统开环传递函数表达式_古典控制理论(三)根轨迹法(闭环系统)
- 上班摸鱼用Python写一个酷狗音乐播放器
- 安全驱动怎么设计(一)
- redis分布式锁unlock方法
- 黑马程序员VUE学习笔记-小黑记事本案例
- 华硕电脑计算机名字联想,华硕与联想哪个电脑好?请详细阐述一下。
- MPC之SPDZ开源库安装过程中可能出现的错误
- 响应“十三五”汽车工业发展规划意见,景联文提供自动驾驶全场景定制化数据采集标注服务
- 惯导姿态角的解释和固定的变换公式