java线程——模拟多窗口售票过程
来源:互联网 发布:局域网监控软件排行 编辑:程序博客网 时间:2024/05/11 00:28
假设有5个售票员,在同时卖100张票,模拟买票过程。
我们知道,在售票过程中,不同窗口同时售票,对于同一张票,不可以出售两次,售票员在售票过程中互不影响,而又需要同时售票。这就需要利用线程来实现。
import java.util.Random;
public class Test {
public static void main(String[] args) {Sellticket sell=new Sellticket();
Thread t1=new Thread (sell,"张三");
Thread t2=new Thread (sell,"李四");
Thread t3=new Thread (sell,"王五");
Thread t4=new Thread (sell,"赵六");
Thread t5=new Thread (sell,"田七");
t1.start();
t2.start();
t3.start();
t4.start();
t5.start();
System.out.println(Thread.activeCount());
}
}
class Sellticket implements Runnable{
private int ticket=100;
Random rd=new Random();
public void run(){
while(ticket>0){
synchronized (this){ //同步代码块,这段代码块同时只允许一个线程方法
if(ticket>0){ //控制剩余票数不小于0
try {
Thread.sleep(rd.nextInt(100)+500); //每运行一次,休眠一秒钟
System.out.println(Thread.currentThread().getName() + "正在卖第 "+ ticket-- +"票.." );
} catch (InterruptedException e) {
e.printStackTrace();
}
}else{
return;
}
}
}
}
}
0 0
- java线程——模拟多窗口售票过程
- Thread 线程之 tickets多售票窗口模拟售票
- Java:多线程模拟多站点售票过程
- Java 多线程初探索之模拟车站多窗口售票
- JAVA学习笔记(2)_____线程同步锁(synchronized)模拟火车售票窗口
- 创建两个线程模拟火车站两个窗口售票程序
- 创建两个线程模拟火车站两个窗口售票程序
- 用两个线程模拟存票、售票过程
- App11_08_用两个线程模拟存票、售票过程
- 黑马程序员--java多线程模拟实现多窗口售票大厅工作
- 关于Java多线程的利用,模拟类似窗口售票
- java多线程小例子:模拟两个窗口售票
- 通过模拟火车售票窗口小Demo初识java多线程
- 多窗口异步售票java纠错
- java多线程模拟售票
- Java之多线程流学习总结-示例-模拟火车售票
- Java多线程模拟售票程序,及线程安全问题
- Java多线程4—线程同步问题+火车票售票系统
- 【匿名内部类】通过内部类匿名实现接口
- Linux下安装ALSA
- 函数
- SICP_Python版:Chapter 2:Implement simple object system
- linux安装expressvpn以及使用指南
- java线程——模拟多窗口售票过程
- 八月英语——近朱者赤
- DialogFragment使用时遇到的一些问题
- 安装wamp时最后提示系统缺少msvcr110.dll的解决方法
- LoadLibrary python.plw error: 找不到指定的模块
- 算法入门
- 求字符串中字符只出现一次的的第一个字符
- 22.Flatten List-平面列表(容易题)
- UVA 208 Firetruck