Java多线程专题之Lock锁的使用
前言
目前正在出一个Java多线程专题长期系列教程,从入门到进阶含源码解读, 篇幅会较多, 喜欢的话,给个关注❤️ ~
Lock基本使用
Lock它是java.util.concurrent.locks下的一个接口,它也是用来处理线程同步问题的。
private static void reduce1(){
if(lock.tryLock()) {
try {
count--;
}finally {
// 释放锁
lock.unlock();
}
}else {
System.out.println("no");
}
}
通过上面的使用,我们来和Synchronized做一个对比
-
表面上一个是关键字,一个是类
-
使用上,
Synchronized隐式,而Lock需要显示,对代码要求比较高,如果忘了释放锁可能会导致死锁 -
Lock提供了tryLock方法,使得程序更加灵活 -
代码表现上Lock更加的灵活,可以在不同的方法中执行
结束语
本节主要讲了它的基本使用,大家可以举一反三,试试什么条件下会导致死锁。下一节,带大家探究一下Lock的底层和源码分析 ~
往期内容推荐
-
-
-
-
-
-
-
-
-
-
-
-
我的博客(阅读体验较佳)
-
-
-
-
-
项目源码(源码已更新 欢迎star⭐️)
-
java-thread-all
-
地址: https://github.com/qiuChengleiy/java-thread-all.git
推荐 SpringBoot & SpringCloud (源码已更新 欢迎star⭐️)
-
springboot-all
-
地址: https://github.com/qiuChengleiy/springboot-all.git -
-

本篇文章来源于微信公众号: 程序员皮卡秋
微信扫描下方的二维码阅读本文

Comments NOTHING