各窗口共同卖票 【 Java 多线程 】
2023-06-13 09:17:22 时间
现实中也存在这样的情况: 模拟一个火车站的售票系统,假如当日从A地发往B地的火车票只有10张,且允许所有窗口卖这10张票,每一个窗口也相当于一个线程。
1、Runnable接口实现
public class Main {
public static void main(String[] args) {
Test m = new Test();
Thread w1 = new Thread(m, "window 1");
Thread w2 = new Thread(m, "window 2");
Thread w3 = new Thread(m, "window 3");
w1.start();
w2.start();
w3.start();
}
}
class Test implements Runnable {
private int n = 10;
public void run() {
while (n > 0) {
System.out.println(n-- + " is saled by " + Thread.currentThread().getName());
}
}
}
2、Thread子类实现
public class Main {
public static void main(String[] args) {
Ticket t = new Ticket();
Test w1 = new Test(t,"window 1");
Test w2 = new Test(t,"window 2");
Test w3 = new Test(t,"window 3");
w1.start();
w2.start();
w3.start();
}
}
class Ticket {
int tic = 10;
}
class Test extends Thread{
private Ticket tick;
public Test(Ticket tick, String name){
super(name);
this.tick = tick;
}
public void run(){
while(tick.tic > 0){
System.out.println(tick.tic -- + " is saled by " + Thread.currentThread().getName());
}
}
}
相关文章
- java局域网发送文件_Java如何实现局域网文件传输代码案例分享
- java服务器开发心得
- JAVA学习路线(最全)[通俗易懂]
- java对象数组 创建对象数组,初始化对象数组「建议收藏」
- java环境_Java基础篇——环境配置
- java OverlappingFileLockException文件锁
- Java递归详解_java难不难学
- java date当前时间_JAVA中获取当前系统时间
- JAVA遍历数组的三种方法_java遍历object数组
- idea创建javaweb项目详解_idea怎么创建普通java项目
- 微软出品自动化神器【Playwright+Java】系列(九)多线程、重定向、弹出新窗口、截图、新页面、录制、页面对象模式操作
- CompletableFuture Java多线程操作
- centos7 java -verison Error: Could not create the Java Virtual Machine.
- JAVA多线程高并发学习笔记(三)——Callable、Future和FutureTask详解编程语言
- java对properties文件进行解析详解编程语言
- Java多线程的实现方式
- 自动提交MySQL事务中的Java自动提交实践(mysql事务java)
- Java 调用 MySQL,编写数据库程序(java导入mysql)
- 淘汰利用Redis实现Java键值对过期淘汰(redisjava过期)
- 策略解析Redis Java中的过期策略(redisjava过期)
- 时间如何设置Redis中Java的过期时间(redisjava过期)
- 处理实现Redis中Java缓存数据过期管理(redisjava过期)
- Redis实现Java语言下的遍历处理(redis遍历java)
- java多线程详细总结
- java去除集合中重复元素示例分享java去除重复