ReentrantLock详解
相对于 synchronized 它具备如下特点
1、可中断synchronized是不可中断的,不可中断的意思是等待获取锁的时候不可中断,拿到锁之后可中断,没获取到锁的情况下,中断操作一直不会生效
可中断可以防止线程死锁
代码演示可中断:package cn.itcast.n3; import java.util.concurrent.locks.ReentrantLock; public class Test3 { private static ReentrantLock lock = new ReentrantLock(); public static void main(String[] args) { Thread t1 = new Thread(() -> { System.out.println("t1线程开始执行"); try { //线程获取锁 lock.lockInterruptibly(); } catch (InterruptedException e) { e.printStackTrace(); System.out.println("t1线程获取锁被打断,获取失败"); return; } try { System.out.println("t1获取锁成功,开始执行临界区代码"); } finally { lock.unlock(); } }) ; //主线程获取锁 lock.lock(); System.out.println("main线程获取到锁"); //启动t1线程 t1.start(); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } //主线程打断t1线程 t1.interrupt(); System.out.println("1秒后,主线程打断t1线程获取锁"); } } 执行结果: main线程获取到锁 t1线程开始执行 1秒后,主线程打断t1线程获取锁 java.lang.InterruptedException at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireInterruptibly(AbstractQueuedSynchronizer.java:898) t1线程获取锁被打断,获取失败 at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireInterruptibly(AbstractQueuedSynchronizer.java:1222) at java.util.concurrent.locks.ReentrantLock.lockInterruptibly(ReentrantLock.java:335) at cn.itcast.n3.Test3.lambda$0(Test3.java:16) at java.lang.Thread.run(Thread.java:745)
2、可以设置超时时间1、boolean res = lock.tryLock()://获取不到立马返回
2、boolean res = lock.tryLock(1000,TimeUnit.SECONDS)://开始获取不到锁等待1秒钟,1秒钟后还是获取不到锁,返回false,可打断
3、可以设置为公平锁
4、支持多个条件变量1、synchronized 中也有条件变量,就是我们讲原理时那个 waitSet 休息室,当条件不满足时进入 waitSet 等待
2、ReentrantLock 的条件变量比 synchronized 强大之处在于,它是支持多个条件变量的,这就好比
(1)synchronized 是那些不满足条件的线程都在一间休息室等消息
(2)而 ReentrantLock 支持多间休息室,有专门等烟的休息室、专门等早餐的休息室、唤醒时也是按休息室来唤醒
使用要点:
1、await 前需要获得锁
2、await 执行后,会释放锁,进入 conditionObject 等待
3、await 的线程被唤醒(或打断、或超时)去重新竞争 lock 锁
4、竞争 lock 锁成功后,从 await 后继续执行
订单增长,从选择一款好的获客产品开始2020年已接近尾声,回顾最后一个月,居然是被阿里巴巴刷屏!2020年12月上旬入驻阿里巴巴国家站的外贸企业无法获取海外客户常用的联系方式2020年12月中旬阿里巴巴国际站上出现自
华为手机值得选的机型,这三款看一看,性能拍照都顶级华为Mate40Pro毕竟,华为Mate40Pro是华为最新的旗舰手机。它在性能拍照充电ID设计等方面都有很大的优势。此外,这款手机在线上线下的持续溢价,显示了它的受欢迎程度。核心
曲面屏手机火了这么久,为何苹果却从来不用呢?看完算是搞明白了必须说曲面屏幕为柔性屏幕应用开创了先例,三星的每一代曲面屏幕手机都像艺术品一样精美而精美。我仍然记得我第一次看到三星Noteedge时的感受。科技与美丽的完美结合,完美再现了我对当
外贸网站排名上不去,可能是这5点原因想必有很多人都有过这样的经历做好了市场调查,确定了要优化的高流量网页,并编写了自认为和关键词非常相关的杀手锏内容,然后把内容上传到你的网站上,最后,就开始坐等这些网页获取Googl
外贸B2B企业是缺获客,还是缺管客?正文开始前让我们先来做一道选择题是先有鸡还是先有蛋?A鸡B蛋答案揭晓在科学领域,加拿大的生物学家DarlaZelenitsky表示,从生物进化的角度来说,鸡是从小型食肉恐龙孵出的蛋
跨境贸易不主动,还何谈高效获客?如果,你的下一个客户便是你未来的对象,你难道不会主动出击吗?如果,你的下一个客户便是你未来的对象,你难道不会仔细了解吗?如果,你的下一个客户便是你未来的对象,你难道不知如何行动吗?
Facebook政策更新啦!获客不易,求放过Facebook政策更新,从2020年11月17日起,限制每日投放金额和新开户数额!!!Facebook将会把开户数额限制的流程扩展到其他没有Facebook直客团队对接的电商广告
行业案例软包装线上营销,如何破解流量转换难题?外贸企业是不是也曾遇见过这样的问题从事外贸十几年了,尝试了各种各样的线上营销方式,比如B2B平台谷歌推广企业国际官网等等,发现最大的难题不是流量,而是将流量转化成销量。刘经理就职于
B端采购商都说好的外贸营销型网站,这些细节不可忽视B端采购商对全球搜客户网站给予高度评价既然采购商都这么夸了,我也实在不好意思再有所隐瞒,今天就来看看,那些拍案叫绝的外贸营销性网站,具体都是如何斩获采购商芳心的始于网站,陷于产品,
2020年只剩一个月,这些外贸企业要注意了2020年的最后一个月已过去两天,一年一度的圣诞节(20201225)也即将来临。往常的圣诞节对于外贸企业来说是一个提高订单不容错过的时间点,但今年的圣诞节受疫情影响,多国取消线下
RCEP红利来之前,B2B型外贸企业,应该怎么做?RCEP最近在外贸圈的风很大,对于B2B企业有众多的好处,关税减免区域一体化但是这样的好处何时生效?外贸企业又有什么影响?B2B企业需要准备什么呢?关于生效问题,官方的回复是这样的