Leaface
Stay Hungry Stay Foolish
2023-08-19T05:26:00.443Z
https://www.liaofuzhan.com/
北宸
Hexo
一行一行源码分析清楚 AbstractQueuedSynchronizer (三)
https://www.liaofuzhan.com/posts/1892723867.html
2022-03-05T04:16:15.000Z
2023-08-19T05:26:00.443Z
<p>这篇文章是 AQS 系列的最后一篇,第一篇,我们通过 ReentrantLock 公平锁分析了 AQS 的核心,第二篇的重点是把 Condition 说明白,同时也说清楚了对于线程中断的使用。这篇,我们的关注点是 AQS 最后的部分,<strong>AQS 共享模式</strong>的使用。有前两篇文章的铺垫,剩下的源码分析将会简单很多。本文先用 CountDownLatch 将共享模式说清楚,然后顺着把其他 AQS 相关的类 CyclicBarrier、Semaphore 的源码一起过一下。相对来说,如果读者有前面两篇文章的基础,这篇文章是简单很多,不过对于初学者来说,1 小时估计也是免不了的。</p>
一行一行源码分析清楚 AbstractQueuedSynchronizer (二)
https://www.liaofuzhan.com/posts/237210800.html
2022-02-26T04:02:11.000Z
2023-08-19T05:26:00.443Z
<p>文章比较长,信息量比较大,建议在 pc 上阅读。文章标题是为了呼应前文,其实可以单独成文的,主要是希望读者看文章能系统看。</p><p>本文关注以下几点内容:</p><p>1、 深入理解 ReentrantLock 公平锁和非公平锁的区别<br>2、 深入分析 AbstractQueuedSynchronizer 中的 ConditionObject<br>3、 深入理解 Java 线程中断和 InterruptedException 异常</p><p>基本上本文把以上几点都说清楚了,我假设读者看过<a href="https://www.liaofuzhan.com/posts/331601127.html">上一篇文章中对 AbstractQueuedSynchronizer 的介绍 </a>,当然如果你已经熟悉 AQS 中的独占锁了,那也可以直接看这篇。各小节之间基本上没什么关系,大家可以只关注自己感兴趣的部分。其实这篇文章的信息量很大,初学者估计<strong>至少要 1 小时</strong>才能看完,希望本文对得起大家的时间。</p>
一行一行源码分析清楚 AbstractQueuedSynchronizer
https://www.liaofuzhan.com/posts/331601127.html
2022-02-19T06:17:44.000Z
2023-08-19T05:26:00.443Z
<p>在分析 Java 并发包 java.util.concurrent 源码的时候,少不了需要了解 AbstractQueuedSynchronizer(以下简写AQS)这个抽象类,因为它是 Java 并发包的基础工具类,是实现 ReentrantLock、CountDownLatch、Semaphore、FutureTask 等类的基础。Google 一下 AbstractQueuedSynchronizer,我们可以找到很多关于 AQS 的介绍,但是很多都没有介绍清楚,因为大部分文章没有把其中的一些关键的细节说清楚。本文将从 ReentrantLock 的公平锁源码出发,分析下 AbstractQueuedSynchronizer 这个类是怎么工作的,希望能给大家提供一些简单的帮助。</p>
SpringBoot 使用 @Transactional 无效
https://www.liaofuzhan.com/posts/1059904857.html
2021-09-25T09:35:01.000Z
2023-08-19T05:26:00.453Z
<p>在 Spring Boot 引入的依赖 spring-boot-starter、spring-boot-starter-web 中都已经包含了对于 spring-boot-starter-jdbc 或 spring-boot-starter-data-jpa 的依赖,框架会自动默认分别注入 DataSourceTransactionManager 或 JpaTransactionManager。我们不需要任何额外配置就可以用 @Transactional 注解进行事务的使用。</p>
使用 Certbot 申请免费的 SSL 证书
https://www.liaofuzhan.com/posts/712036057.html
2021-09-19T08:45:01.000Z
2023-08-19T05:26:00.451Z
<div class="group-picture"><div class="group-picture-container"><div class="group-picture-row"><div class="group-picture-column" style="width:100%"><img class="index_img_class" src="https://cdn.jsdelivr.net/gh/leafjame/cdn/img/articles/41/1.jpg"></div></div><div class="group-picture-row"></div></div></div>
Spring Kafka 批量消费
https://www.liaofuzhan.com/posts/2865062686.html
2021-09-12T07:50:12.000Z
2023-08-19T05:26:00.453Z
<p>Kafka 作为一个分布式发布订阅的消息系统,是目前最流行的消息队列之一,批量消费在现实业务场景中可以提高 kafka 消费吞吐量。Spring 框架可以使用 <code>@KafkaListener</code> 注解来实现消费端批量消费的功能。</p>
Spring Retry 重试机制
https://www.liaofuzhan.com/posts/2355788036.html
2021-09-11T09:11:33.000Z
2023-08-19T05:26:00.453Z
<p>在调用外部服务进行查询时,常常因为网络抖动、服务方限流等不可预知的一些因素造成查询失败。为了克服这些问题,引入了重试机制 Spring Retry.</p>
Mac 显示隐藏系统文件
https://www.liaofuzhan.com/posts/3025236955.html
2021-09-05T07:15:20.000Z
2023-08-19T05:26:00.453Z
<p><img src="https://cdn.jsdelivr.net/gh/leafjame/cdn/img/articles/40/apple.jpg" alt="mac"></p>
PJAX加速站点访问
https://www.liaofuzhan.com/posts/2913572160.html
2020-05-01T02:55:51.000Z
2023-08-19T05:26:00.453Z
<p>说起 PJAX,已是由来已久,在很多网站上经常会遇到。它通过 PushState + Ajax 技术,实现 HTML 页面局部刷新等功能,提供了一种极速的浏览体验。避免每次载入过多的重复资源,耗费额外加载时间,提升了网站的整体访问速度。最直观的体验就是音乐能全局播放了!</p>
Cloudflare几款实用的APP
https://www.liaofuzhan.com/posts/1344151861.html
2020-02-22T10:26:33.000Z
2023-08-19T05:26:00.453Z
<p>本站使用 Cloudflare 提供的 DNS 和 CDN 服务,Cloudflare 是美帝跨国企业,实力强悍,针对个人网站推出了一定的 <a href="https://www.cloudflare.com/zh-cn/plans/" target="_blank" rel="noopener">免费计划</a>,注册完账号,添加受保护站点后即可使用,还提供了十分友好的统计和分析界面。文档很详细,使用起来基本没啥问题,接下来主要介绍 Cloudflare 几款实用的应用。</p>
被遗忘的SQL
https://www.liaofuzhan.com/posts/3973006348.html
2020-01-19T12:20:20.000Z
2023-08-19T05:26:00.445Z
<p>公司平台有个系统公告模块,展示的是管理员发布的通知和公告,数据库有公告和公告阅读记录这两张表,后者存有公告 ID 和用户 ID。现在前端需要两个接口:1、当前登录用户未读公告;2、当前登录用户下所有公告,并返回已读、未读标识。需求很简单,在此记录一下。</p>
Happy New Year
https://www.liaofuzhan.com/posts/712036056.html
2020-01-01T12:20:20.000Z
2023-08-19T05:26:00.451Z
<div class="group-picture"><div class="group-picture-container"><div class="group-picture-row"><div class="group-picture-column" style="width:100%"><img class="index_img_class" src="https://cdn.jsdelivr.net/gh/leafjame/cdn/img/articles/4/1.jpg"></div></div><div class="group-picture-row"></div></div></div>
关于Lombok使用的一些问题
https://www.liaofuzhan.com/posts/4067495121.html
2019-12-28T06:19:25.000Z
2023-08-19T05:26:00.454Z
<p>Lombok 是一款非常实用的工具,通过注解能消除冗长的 Java 代码,工程中需要导入 lombok.jar,相应 IDE 的安装方式可参考 <a href="https://projectlombok.org/" target="_blank" rel="noopener">官网</a>。项目中使用到的注解主要是 @Data 和 @Builder,前一个注解用在类上,相当于同时使用了 @ToString、@EqualsAndHashCode、@Getter、@Setter 和 @RequiredArgsConstrutor;后一个主要用在类、构造器、方法上,能非常方便的实现建造者模式、链式编程,相关文档可参考 <a href="https://projectlombok.org/features/all" target="_blank" rel="noopener">这里</a>。</p>
分享几款不错的浪漫素材
https://www.liaofuzhan.com/posts/3564551888.html
2019-12-22T04:22:22.000Z
2023-08-19T05:26:00.452Z
<p>双旦将至,快找个暖冬又暖心的 TA 一起跨年吧!如果你还是一枚单身汪,那么再过几天的时间,又到了别人狂欢你孤单的圣诞之夜!再再再过几天时间,又双叒叕到了别人狂欢你孤单的跨年之夜!落单的人往往最怕过节,更何况双旦佳节的连环暴击,别人疯狂撒着狗粮,而你只能接受着来自情侣们的亿万点伤害,SO,与其不甘寂寞,何不为爱情放纵一次?撩个对象一起过双旦吧,2019 年最后一个脱单的机会,为你呈现 !</p>
区块链项目环境搭建
https://www.liaofuzhan.com/posts/2435254904.html
2019-12-13T09:36:06.000Z
2023-08-19T05:26:00.444Z
<div class="group-picture"><div class="group-picture-container"><div class="group-picture-row"><div class="group-picture-column" style="width:100%"><img class="index_img_class" src="https://cdn.jsdelivr.net/gh/leafjame/cdn/img/articles/6/1.jpg"></div></div><div class="group-picture-row"></div></div></div>
个人域名企业邮箱
https://www.liaofuzhan.com/posts/3598618716.html
2019-12-06T11:33:01.000Z
2023-08-19T05:26:00.453Z
<p>自本站开启了邮件订阅后,基于 Mailchimp 实现的代发功能很容易被其它邮件服务器标为垃圾邮件,一定程度上影响了订阅邮件的正常投递,主要是没有验证独立域名、设置 Mailchimp 提供的 DKIM / SPF 的 DNS 记录的缘故。这需要你拥有自己独立域名的邮箱,比如我近期申请的 ZOHO 企邮,后缀就是自己的域名。</p>
年冬初雪
https://www.liaofuzhan.com/posts/3058510804.html
2019-11-30T12:49:28.000Z
2023-08-19T05:26:00.451Z
<div class="group-picture"><div class="group-picture-container"><div class="group-picture-row"><div class="group-picture-column" style="width:100%"><img class="index_img_class" src="https://cdn.jsdelivr.net/gh/leafjame/cdn/img/articles/8/1.jpg"></div></div><div class="group-picture-row"></div></div></div>
基于Mailchimp实现邮件订阅功能
https://www.liaofuzhan.com/posts/4068965437.html
2019-11-09T09:39:37.000Z
2023-08-19T05:26:00.454Z
<p>前段时间,给自己的小站添加的订阅功能,主要是通过 Mailchimp 提供的 Signup forms 和 Landing page 做的。MailChimp 是一款提供邮件营销服务的老牌产品了,很多大企业都在用,普通用户每月可享受 10000 封免费邮件发送服务,可增加用户总数为 2000 个,具体的免费额度可在个人中心 –> Account 下进行查看。这里整理了部分有关于 Mailchimp 邮件订阅这方面的个人 Demo,供大家参考,<a href="https://mailchi.mp/e92415d27722/leaf" target="_blank" rel="noopener">点此</a> 可体验本站订阅功能。</p>
一年一度万圣节
https://www.liaofuzhan.com/posts/299207420.html
2019-10-31T09:50:58.000Z
2023-08-19T05:26:00.451Z
<div class="group-picture"><div class="group-picture-container"><div class="group-picture-row"><div class="group-picture-column" style="width:100%"><img class="index_img_class" src="https://cdn.jsdelivr.net/gh/leafjame/cdn/img/articles/10/1.gif"></div></div><div class="group-picture-row"></div></div></div>
京郊赏红叶之行
https://www.liaofuzhan.com/posts/1259393631.html
2019-10-27T10:25:28.000Z
2023-08-19T05:26:00.451Z
<p>北京的秋天,像突然转凉的天气一样,在措不及防之时,已是漫山遍野的秋意。秋短且浓烈,已是赏红叶的最佳时节。香山的红叶出了名,不过就是人太多,工作日尚且如此,何况周末。和朋友合计了下,反正我俩以前也去过,这次就换个地儿。参考了网上赏红叶相关的攻略,决定自驾前往房山红井路——北京醉美的一条乡村公路!</p>