Java 编程下的同步代码块(售票员)
16lz
2021-01-22
同步代码块比较经典的例子是火车站的售票员售票的过程,下面通过代码来分析同步代码块在这里面的作用。
package cn.sunzn.synchronize; public class SynchronizeCode { public static void main(String[] args) { new TicketSeller().start(); new TicketSeller().start(); new TicketSeller().start(); new TicketSeller().start(); } } class TicketSeller extends Thread { private static int ticket = 100; private static Object lock = new Object(); public void run() { while (true) { synchronized (lock) { /************ 每次售票前进行判断 ************/ if (ticket == 0) { break; } /************ 模拟售票的网络延迟 ************/ try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } /************ 符合条件后进行售票 ************/ System.out.println(Thread.currentThread().getName() + " 售出了第 " + ticket-- + " 张票"); } } } }
更多相关文章
- JAVA 关于图片上传的代码
- 线程“main”中的异常java.lang.RuntimeException:无法编译的源代
- java 和 C 代码运行效率的比较(整理)
- Java:IntelliJ想法生成的代码错误地为所有Class名称添加了其包名
- 求一段与读取数据库数据,写入一个数组的javascript 代码!谢谢!!
- java动态编译 (java在线执行代码后端实现原理)
- java SSH员工管理系统以及Demo代码下载
- JavaScript 面向对象编程,严格过程的标准化编程法,目前为止最好的
- 8/人天,小记一次 JAVA(APP后台) 项目改造 .NET 过程(后台代码已完整