Java线程安全3-显示锁Lock
2021/8/7 12:06:05
本文主要是介绍Java线程安全3-显示锁Lock,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
package com.java.demo; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public class Demo2 { /** * 同步代码块 和 同步方法 都属于隐式锁 * 线程同步:Lock * @param args */ public static void main(String[] args) { //线程不安全 //解决方案3:显示锁 Lock 子类 ReentrantLock Runnable run = new Ticket(); new Thread(run).start(); new Thread(run).start(); new Thread(run).start(); } static class Ticket implements Runnable { //票数 private int count = 10; //显示锁 l private Lock l = new ReentrantLock(); @Override public void run() { while (true) { l.lock(); if (count > 0) { //卖票 System.out.println("正在准备卖票"); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } count--; System.out.println(Thread.currentThread().getName() + "出票成功,余票:" + count); }else{ break; } l.unlock(); } } } }
这篇关于Java线程安全3-显示锁Lock的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-28知识管理革命:文档软件的新玩法了解一下!
- 2024-11-28低代码应用课程:新手入门全攻略
- 2024-11-28哪些办公软件适合团队协作,且能够清晰记录每个阶段的工作进展?
- 2024-11-28全栈低代码开发课程:零基础入门到初级实战
- 2024-11-28拖动排序课程:轻松掌握课程拖动排序功能
- 2024-11-28如何高效管理数字化转型项目
- 2024-11-28SMART法则好用吗?有哪些项目管理工具辅助实现?
- 2024-11-28深度剖析:6 款办公软件如何构建设计团队项目可视化管理新生态?
- 2024-11-28HTTP缓存课程:新手入门指南
- 2024-11-28实战丨证券 HTAP 混合业务场景的难点问题应对