<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ly1944cool的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ly1944cool</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ly1944cool]]></copyright><item><title><![CDATA[ReentrantLock加锁解锁过程分析]]></title><link>https://blog.youkuaiyun.com/ly1944cool/article/details/120995120</link><guid>https://blog.youkuaiyun.com/ly1944cool/article/details/120995120</guid><author>ly1944cool</author><pubDate>Thu, 28 Oct 2021 10:29:45 +0800</pubDate><description><![CDATA[1，创建ReetrantLock对象


ReentrantLock lock = new ReentrantLock(true);


    // 可以选择使用公平锁或非公平锁，通过构造函数中的参数决定，如果传true则为公平锁，
    //否则就是非公平锁。
    public ReentrantLock(boolean fair) {
        sync = fair ? new FairSync() : new NonfairSync();
    }

2，加锁


lock.lock]]></description><category></category></item><item><title><![CDATA[Spring Boot 入门]]></title><link>https://blog.youkuaiyun.com/ly1944cool/article/details/106123394</link><guid>https://blog.youkuaiyun.com/ly1944cool/article/details/106123394</guid><author>ly1944cool</author><pubDate>Thu, 14 May 2020 16:48:01 +0800</pubDate><description><![CDATA[新手入门

如果您刚开始使用Spring Boot或者只是普通的“Spring” , 请先阅读这个章节. 因为这部分内容可以回答以下几个问题： “what?”, “how?” and “why?” . 包括Spring Boot的相关介绍以及安装说明. 然后，我们将引导您构建您的第一个Spring Boot应用程序，并在此过程中讨论一些核心原则。

1. Spring Boot简介

Spring Boot 使创建可以运行的、独立的、生产级的基于spring的应用程序变得简单. 我们集成了Spring平台和]]></description><category></category></item><item><title><![CDATA[redis分布式锁]]></title><link>https://blog.youkuaiyun.com/ly1944cool/article/details/103935841</link><guid>https://blog.youkuaiyun.com/ly1944cool/article/details/103935841</guid><author>ly1944cool</author><pubDate>Sat, 11 Jan 2020 13:39:03 +0800</pubDate><description><![CDATA[redis锁（单例）
目前redis实现分布式锁大致有以下几种方案：

方案一
伪代码：
 


lock(key,requestId){
 if (setnx(key,requestId)==1){
  setexpire(key,5000);
  return true;
 }
  return false;
 }

 unlo...]]></description><category></category></item><item><title><![CDATA[使用jstat监控jvm垃圾回收]]></title><link>https://blog.youkuaiyun.com/ly1944cool/article/details/97496580</link><guid>https://blog.youkuaiyun.com/ly1944cool/article/details/97496580</guid><author>ly1944cool</author><pubDate>Sat, 27 Jul 2019 13:21:58 +0800</pubDate><description><![CDATA[使用jstat监控gc常用命令为：

jstat -gc PID interval

运行命令行：jstat -gc 8937 5000（监控进程ID为8937的GC，每5秒执行一次），运行结果如下所示：



首先对每一列数据的具体含义进行说明：


			S0C
			
			新生代一区总内存
		
			S1C
			
			新生代二区总内存
		
			S0U
			
			新生代一区已使...]]></description><category></category></item><item><title><![CDATA[JAVA HashMap的hash方法]]></title><link>https://blog.youkuaiyun.com/ly1944cool/article/details/97258825</link><guid>https://blog.youkuaiyun.com/ly1944cool/article/details/97258825</guid><author>ly1944cool</author><pubDate>Thu, 25 Jul 2019 14:29:27 +0800</pubDate><description><![CDATA[在每次使用HashMap存储K-V时，需要首先计算K的hash值，具体的计算方式是通过hash方法实现的，源码如下所示：


static final int hash(Object key) {
        int h;
        return (key == null) ? 0 : (h = key.hashCode()) ^ (h &gt;&gt;&gt; 16);
}

从源码可...]]></description><category></category></item><item><title><![CDATA[H5-支付宝支付]]></title><link>https://blog.youkuaiyun.com/ly1944cool/article/details/89146499</link><guid>https://blog.youkuaiyun.com/ly1944cool/article/details/89146499</guid><author>ly1944cool</author><pubDate>Tue, 09 Apr 2019 14:36:52 +0800</pubDate><description><![CDATA[1，页面数据准备


		&lt;form action="&lt;%=basePath%&gt;pay/submit" method="post" id="payForm"&gt;
		     &lt;input id="WIDout_trade_no" name="WIDout_trade_no" type="hidden" value="${orderSubmitData.outTrade...]]></description><category></category></item><item><title><![CDATA[log4j配置概览]]></title><link>https://blog.youkuaiyun.com/ly1944cool/article/details/70142149</link><guid>https://blog.youkuaiyun.com/ly1944cool/article/details/70142149</guid><author>ly1944cool</author><pubDate>Wed, 12 Apr 2017 14:02:07 +0800</pubDate><description><![CDATA[1、配置根Logger
其语法为： log4j.rootLogger = [ level ] , appenderName, appenderName2
level：日志的级别，指定这条日志信息的重要性,分为ALL 
一般常用的为 DEBUG ， INFO ，WARN ，ERROR四种，
分别对应Logger类的四种方法
 debug(Object message);
 info(Ob]]></description><category></category></item></channel></rss>