java如何使用tryLock进行尝试锁定
发表于:2024-10-27 作者:千家信息网编辑
千家信息网最后更新 2024年10月27日,这篇文章主要讲解了"java如何使用tryLock进行尝试锁定",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"java如何使用tryLock进行尝试锁定
千家信息网最后更新 2024年10月27日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安全错误
数据库的锁怎样保障安全
时间同步服务器 超时
北京咨询网络技术服务一体化
网络安全与成本投入的关系
如何连接柯美打印机服务器
数据库MySQL存储类型
网络方向和软件开发方向
国际集成电路数据库
sql数据库一般位置
企业电商软件开发价钱
什么游戏开服不占用服务器内存
商贸宝链接不到数据库
网易的服务器验证是什么
大同软件开发制作
h81 服务器驱动
网络安全的作文及答案
数据库 垂直分片
倡议网络安全靠人民网
河源通信软件开发销售厂
甘肃展厅多媒体软件开发公司
软件开发人员绩效考评指标
宠物行业如何做网络技术
网络安全绘画 内容
网络技术应用1
上海软件开发有限公司
工业软件开发预算
极客思维网络技术单位座机010
数据库安全事故案例
保障网络安全最根本的措施是
从网页上调用及编辑数据库
数据库文件svg格式