Java 多线程实现多窗口同时售票简单功能
1 package day162020072701.day1603; 2 3 import java.util.concurrent.locks.Lock; 4 import java.util.concurrent.locks.ReentrantLock; 5 6 /** 7 * @author liuwenlong 8 * @create 2020-07-27 13:13:32 9 */ 10 @SuppressWarnings("all") 11 public class SellTicke implements Runnable { 12 private int tik = 10; 13 Lock lock = new ReentrantLock(); 14 15 @Override 16 public void run() { 17 while (true) { 18 //加锁 19 lock.lock(); 20 if (tik > 0) { 21 try { 22 //模拟一下出票过程 23 Thread.sleep(100); 24 } catch (InterruptedException e) { 25 e.printStackTrace(); 26 } 27 System.out.println(Thread.currentThread().getName() + ";还剩" + --tik + "张票"); 28 } 29 //解锁 30 lock.unlock(); 31 } 32 } 33 }
1 package day162020072701.day1603; 2 3 /** 4 * @author liuwenlong 5 * @create 2020-07-27 13:15:03 6 */ 7 @SuppressWarnings("all") 8 public class TestSell { 9 public static void main(String[] args) throws InterruptedException { 10 SellTicke s = new SellTicke(); 11 Thread t1 = new Thread(s,"窗口1"); 12 Thread t2 = new Thread(s,"窗口2"); 13 Thread t3 = new Thread(s,"窗口3"); 14 t1.start(); 15 t2.start(); 16 t3.start(); 17 } 18 }
原创文章,转载请说明出处,谢谢合作
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律