java如何使用tryLock进行尝试锁定
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章主要讲解了"java如何使用tryLock进行尝试锁定",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"java如何使用tryLock进行尝试锁定
千家信息网最后更新 2025年02月01日java如何使用tryLock进行尝试锁定
这篇文章主要讲解了"java如何使用tryLock进行尝试锁定",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"java如何使用tryLock进行尝试锁定"吧!
synchronized是得不到这把锁就得等着。 reentrantlock比synchronized更灵活一些。
/** * reentrantlock用于替代synchronized * 由于m1锁定this,只有m1执行完毕的时候,m2才能执行 * 这里是复习synchronized最原始的语义 * * 使用reentrantlock可以完成同样的功能 * 需要注意的是,必须要必须要必须要手动释放锁(重要的事情说三遍) * 使用syn锁定的话如果遇到异常,jvm会自动释放锁,但是lock必须手动释放锁,因此经常在finally中进行锁的释放 * * 使用reentrantlock可以进行"尝试锁定"tryLock,这样无法锁定,或者在指定时间内无法锁定,线程可以决定是否继续等待 * @author mashibing */package yxxy.c_020;import java.util.concurrent.TimeUnit;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class ReentrantLock3 { Lock lock = new ReentrantLock(); void m1() { try { lock.lock(); for (int i = 0; i < 10; i++) { TimeUnit.SECONDS.sleep(1); System.out.println(i); } } catch (InterruptedException e) { e.printStackTrace(); } finally { lock.unlock(); } } /** * 使用tryLock进行尝试锁定,不管锁定与否,方法都将继续执行 * 可以根据tryLock的返回值来判定是否锁定 * 也可以指定tryLock的时间,由于tryLock(time)抛出异常,所以要注意unclock的处理,必须放到finally中 */ void m2() { /* boolean locked = lock.tryLock(); System.out.println("m2 ..." + locked); if(locked) lock.unlock(); */ boolean locked = false; try { //尝试等待一把锁,等5秒 locked = lock.tryLock(5, TimeUnit.SECONDS); System.out.println("m2 ..." + locked); } catch (InterruptedException e) { e.printStackTrace(); } finally { if(locked) lock.unlock(); } } public static void main(String[] args) { ReentrantLock3 rl = new ReentrantLock3(); new Thread(rl::m1).start(); try { TimeUnit.SECONDS.sleep(1); } catch (InterruptedException e) { e.printStackTrace(); } new Thread(rl::m2).start(); }}
感谢各位的阅读,以上就是"java如何使用tryLock进行尝试锁定"的内容了,经过本文的学习后,相信大家对java如何使用tryLock进行尝试锁定这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
尝试
学习
内容
手动
时间
原始
重要
事情
功能
只有
就是
思路
情况
文章
方法
时候
更多
知识
知识点
篇文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
ap数据库怎么更新
公司数据库安全措施
路由器打印服务器设置在哪里
服务器管理器 远程桌面
西安鸿鹄网络技术 赵
全国高中生网络安全中心
安装考勤机自己有数据库
制作一个网页控制数据库
为什么数据库只能添加数字
技算机网络技术什么意思
网络安全没基础可以学吗
宁波工控软件开发
直播软件开发用什么
企业需要自己搭建dns服务器吗
深圳电子税局客户端服务器
网络安全应急处置总结
非经营网络安全
db2数据库 等于null
网络安全有什么问题
黑客网络安全微电影
河北精英网络技术咨询联系人
网络服务器客户端管理职责
互联网没什么科技技术
广东x86视频服务器供应商
高防电信服务器租用
安卓软件开发重命名
基于java的数据库
c 多线程 数据库
深圳电子税局客户端服务器
实惠的贸易管理软件开发方案