<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[来离]]></title><description><![CDATA[履霜坚冰，阴始凝也；驯至其道，至坚冰也。]]></description><link>https://blog.youkuaiyun.com/lai_li</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lai_li]]></copyright><item><title><![CDATA[AQS框架分析]]></title><link>https://blog.youkuaiyun.com/lai_li/article/details/80077848</link><guid>https://blog.youkuaiyun.com/lai_li/article/details/80077848</guid><author>lai_li</author><pubDate>Wed, 25 Apr 2018 13:23:46 +0800</pubDate><description><![CDATA[一. 同步器

多线程并发的执行，之间通过某种 共享 状态来同步，只有当状态满足某个条件，才能触发线程执行。

而这个共同的语义可以称之为同步器，可以认为几乎 juc ( java.util.concurrent ) 下面所有的锁机制都可以基于同步器定制来实现的。而 juc 的思想是将这些场景抽象出来的语义通过同意的同步框架来支持。

juc 里所有的这些锁机制都是基于 AQS ( Abstrac...]]></description><category></category></item><item><title><![CDATA[LNK1101: MSPDB140.DLL 的版本不正确]]></title><link>https://blog.youkuaiyun.com/lai_li/article/details/72861268</link><guid>https://blog.youkuaiyun.com/lai_li/article/details/72861268</guid><author>lai_li</author><pubDate>Sun, 04 Jun 2017 20:44:01 +0800</pubDate><description><![CDATA[问题情况：启动生成时会提示：
warning D9028: 最小重新生成失败，正在转换为标准生成
LINK : fatal error LNK1101: MSPDB140.DLL 的版本不正确；请重新检查此产品的安装
在多次查询后，仍然没有发现可行的解决方法，最后在某个和问题毫不相干的博客中找到了结果。说可能和字体渲染有关系，而正好我前几天用了 Mactype 美化字体。由于不放心系统出现问题，一直]]></description><category></category></item><item><title><![CDATA[JDK中Stack的bug]]></title><link>https://blog.youkuaiyun.com/lai_li/article/details/68948693</link><guid>https://blog.youkuaiyun.com/lai_li/article/details/68948693</guid><author>lai_li</author><pubDate>Sat, 01 Apr 2017 22:52:28 +0800</pubDate><description><![CDATA[JDK中Stack的bug在写 Dijkstra 的最短路径算法的时候，打印结果发现和预期的结果不同，查找出来的路径刚好是反着的。在经过多次bug排查后最后发现问题在路径的打印上面。Stack<DirectedEdge> path = new Stack<>();
for (DirectedEdge e = edgeTo[v]; e != null; e = edgeTo[e.from()])]]></description><category></category></item><item><title><![CDATA[Ubuntu下为chromium安装Adobe Flash Player]]></title><link>https://blog.youkuaiyun.com/lai_li/article/details/65628991</link><guid>https://blog.youkuaiyun.com/lai_li/article/details/65628991</guid><author>lai_li</author><pubDate>Fri, 24 Mar 2017 11:39:34 +0800</pubDate><description><![CDATA[Ubuntu下为chromium安装Adobe Flash Player参考来源：ask ubuntu1.下载Adobe Flash Player先下载adobe flash player的插件：Adobe Flash Player，选择后缀为.tar.gz的文件下载后解压tar -zxvf xxx.tar得到一个libpepflashplayer.so的文件2.加入Chromium的插件文件夹su]]></description><category></category></item><item><title><![CDATA[牛顿法开平方]]></title><link>https://blog.youkuaiyun.com/lai_li/article/details/62221951</link><guid>https://blog.youkuaiyun.com/lai_li/article/details/62221951</guid><author>lai_li</author><pubDate>Wed, 15 Mar 2017 13:40:50 +0800</pubDate><description><![CDATA[牛顿法（又称：牛顿迭代法）能快速逼近很多方程的解，自然可以用来开任意平方。求a√\sqrt{a}，即求x2−a=0x^2 - a = 0的正根。更一般的，求a√k\sqrt[k]{a}，即求xk−a=0x^k - a = 0的正根。注意：牛顿法只能逼近解，不能计算精确解。不过实际应用中，我们都不要求绝对精确的解，只要精度足够高就好了，所以它的应用非常广泛。牛顿法假设方程f(x)=0f(x) = 0]]></description><category></category></item><item><title><![CDATA[Linux学习（15）--管道命令]]></title><link>https://blog.youkuaiyun.com/lai_li/article/details/61921914</link><guid>https://blog.youkuaiyun.com/lai_li/article/details/61921914</guid><author>lai_li</author><pubDate>Mon, 13 Mar 2017 17:08:22 +0800</pubDate><description><![CDATA[管道命令如果一些数据要经过几道手续之后才能得到我们想要的格式，应该如何来设置。这就是管道（pipe）命令的问题了，它使用 “|” 这个界定符号。而且管道命令与连续执行命令是不一样的。假如我们想知道 /etc 下面有多少文件，那么可以利用 ls /etc 来查询，但是文件太多，我们不知道前面输出的内容是什么，此时我们就可以利用 less 来协助：[root@mars ~]# ls -al /etc/]]></description><category></category></item><item><title><![CDATA[Linux学习（14）--数据流重定向]]></title><link>https://blog.youkuaiyun.com/lai_li/article/details/61916292</link><guid>https://blog.youkuaiyun.com/lai_li/article/details/61916292</guid><author>lai_li</author><pubDate>Mon, 13 Mar 2017 13:35:21 +0800</pubDate><description><![CDATA[数据流重定向一般来说，如果要执行一个命令，通常它会是这样的：经过文件读入数据后，再将数据输出到屏幕上。Standard error 和 Standard output都可以把信息输出到屏幕上，那么区别在哪里呢？Standard output 和 Standard error简单地说，标准输出指的是命令执行所回传的正确的信息，而标准错误输出可理解为命令执行失败后，所回传的错误信息。比如，我们去查看 /]]></description><category></category></item><item><title><![CDATA[Linux学习（13）--初识bash shell]]></title><link>https://blog.youkuaiyun.com/lai_li/article/details/61912758</link><guid>https://blog.youkuaiyun.com/lai_li/article/details/61912758</guid><author>lai_li</author><pubDate>Mon, 13 Mar 2017 09:17:22 +0800</pubDate><description><![CDATA[bash shell我们知道，操作系统其实就是一组软件，由于这组软件在控制整个硬件与管理系统的活动监测，如果这组软件被用户随意操作，若用户操作不当，将会使得整个系统崩溃。但是系统总还是需要用户操作系统的，所有就有了在操作系统上面发展的应用程序。用户可以通过应用程序来指挥内核，达到我们的目的。其实 shell 的功能只是提供用户操作系统的一个接口，因此这个 shell 需要可以调用其它软件才好。]]></description><category></category></item><item><title><![CDATA[Linux学习（12）--文件压缩]]></title><link>https://blog.youkuaiyun.com/lai_li/article/details/60965046</link><guid>https://blog.youkuaiyun.com/lai_li/article/details/60965046</guid><author>lai_li</author><pubDate>Thu, 09 Mar 2017 18:39:19 +0800</pubDate><description><![CDATA[在 Linux 的环境中，我们可以看到许多压缩文件的扩展名。尽管说 Linux 的扩展名没什么作用，但是由于 Linux 支持的压缩命令非常多，彼此之间采用的压缩技术不同，可能造成无法互通的情况。所以为了照顾使用者，适当的扩展名还是必要的。下面是几个常见的压缩文件扩展名。
*.Z                compress程序压缩的文件
*.gz               gzip程序压缩的文]]></description><category></category></item><item><title><![CDATA[Linux学习（11）--文件系统的简单操作]]></title><link>https://blog.youkuaiyun.com/lai_li/article/details/60876377</link><guid>https://blog.youkuaiyun.com/lai_li/article/details/60876377</guid><author>lai_li</author><pubDate>Wed, 08 Mar 2017 17:14:58 +0800</pubDate><description><![CDATA[磁盘与目录的容量：df，du
df：列出文件系统的整体磁盘使用量
du：评估文件系统的磁盘使用量（常用于评估目录所占容量）
[root@VM_174_157_centos ~]# df [-ahikHTm] 目录或文件名
选项与参数：
-a：列出所有的文件系统，包括系统特有的/proc等文件系统
-k：以KBytes的容量显示各文件系统
-m：以MBytes的容量显示各文件系统
-h：以人们熟知的G]]></description><category></category></item><item><title><![CDATA[Linux学习（10）--Ext2文件系统特性]]></title><link>https://blog.youkuaiyun.com/lai_li/article/details/60777297</link><guid>https://blog.youkuaiyun.com/lai_li/article/details/60777297</guid><author>lai_li</author><pubDate>Tue, 07 Mar 2017 19:34:07 +0800</pubDate><description><![CDATA[dumpe2fs（查看文件系统）[root@VM_174_157_centos ~]# dumpe2fs [-bg] 设备文件名
选项与参数：
-b：列出保留为坏道的部分
-h：仅列出 superblock 的数据，不会列出其他的区段内容
范例1：找出根目录下的磁盘文件名，并查看相关信息
[root@VM_174_157_centos ~]# df
Filesystem     1K-blocks]]></description><category></category></item><item><title><![CDATA[Linux学习（9）--inode/block特性]]></title><link>https://blog.youkuaiyun.com/lai_li/article/details/60334143</link><guid>https://blog.youkuaiyun.com/lai_li/article/details/60334143</guid><author>lai_li</author><pubDate>Sat, 04 Mar 2017 17:35:37 +0800</pubDate><description><![CDATA[inode/block特性操作系统的文件数据除了文件实际内容外，通常含有非常多的属性，例如Linux的文件权限（rwx）与文件属性（所有者、事件参数等等）。文件系统通常会将这些数据放到不同的区块，权限与属性放置到 inode 中，实际数据则放置到 data block 区块中。另外，还有一个超级区块（superblock）会记录整个文件系统的整体信息。每个 inode 与 block 都有编号，他们]]></description><category></category></item><item><title><![CDATA[Linux学习（8）--命令与文件的查询]]></title><link>https://blog.youkuaiyun.com/lai_li/article/details/58651774</link><guid>https://blog.youkuaiyun.com/lai_li/article/details/58651774</guid><author>lai_li</author><pubDate>Tue, 28 Feb 2017 20:51:20 +0800</pubDate><description><![CDATA[命令与文件的查询虽然某些软件配置文件的文件名是不变的，但是各个distribution放置的目录是不同的。此时就要利用一些查询命令将该配置文件的完整文件名找出来。脚本文件名的查询我们知道在Terminal中，连续输入两次[Tab]就可以知道用户有多少命令可以执行。那我们怎么知道这些命令的完整文件名放在哪里？此时就需要 while 或 type来查找。- which（寻找执行文件）[root@VM_1]]></description><category></category></item><item><title><![CDATA[Linux学习（7）--文件权限]]></title><link>https://blog.youkuaiyun.com/lai_li/article/details/57085226</link><guid>https://blog.youkuaiyun.com/lai_li/article/details/57085226</guid><author>lai_li</author><pubDate>Sat, 25 Feb 2017 17:18:16 +0800</pubDate><description><![CDATA[文件与目录的默认权限和隐藏权限在之前我们已经提到了，我们可以通过chown修改属性，chmod修改权限。在这个地方就不多说了，不了解的话可以去前面看看。下面我们主要谈一谈“新建一个文件或者目录时默认的权限是什么”。文件默认权限：umaskumask是指定“目前用户在新建文件或目录时候的权限默认值”，我们可以通过以下的方式得知或者设置umask：[root@VM_174_157_centos ~]#]]></description><category></category></item><item><title><![CDATA[Linux学习（6）--文件内容查阅]]></title><link>https://blog.youkuaiyun.com/lai_li/article/details/56009263</link><guid>https://blog.youkuaiyun.com/lai_li/article/details/56009263</guid><author>lai_li</author><pubDate>Mon, 20 Feb 2017 10:53:19 +0800</pubDate><description><![CDATA[如果我们要查阅一个文件的内容时，该怎么办呢？这里有很多有趣的命令可以来分享一下：最常用的显示文件内容的命令可以说是 cat 与 more 及 less了。此外，如果我们要查看一个几百MB的文件，但是只需要最后的几行字，该怎么办呢？用tail啊！此外，tac也可以！那我们先来看看各个命令的用途：
cat：从第一行开始显示文件内容
tac：从最后一行开始显示，可以发现tac就是cat倒着写！
nl：显示]]></description><category></category></item><item><title><![CDATA[Linux学习（5）--文件与目录管理]]></title><link>https://blog.youkuaiyun.com/lai_li/article/details/55804499</link><guid>https://blog.youkuaiyun.com/lai_li/article/details/55804499</guid><author>lai_li</author><pubDate>Sun, 19 Feb 2017 14:47:25 +0800</pubDate><description><![CDATA[linux文件与目录管理中的 ls、cp、rm、mv、basename、dirname等命令的基本使用和注意事项]]></description><category></category></item><item><title><![CDATA[Linux学习（4）--目录与路径]]></title><link>https://blog.youkuaiyun.com/lai_li/article/details/53264518</link><guid>https://blog.youkuaiyun.com/lai_li/article/details/53264518</guid><author>lai_li</author><pubDate>Mon, 21 Nov 2016 21:23:43 +0800</pubDate><description><![CDATA[相对路径与绝对路径： 
绝对路径：路径的写法一定由根目录 / 写起，例如 /usr/share/doc 这个目录； 
相对路径：不是由 / 写起，例如由 /usr/share/doc 到 /usr/share/man 下这个目录，可以写 cd ../man。指的是当前工作目录下的路径。



目录的相关操作

一些特殊的目录，可以帮助我们快速操作：



.       代表此层目录
..]]></description><category></category></item><item><title><![CDATA[Linux学习（3）--目录配置]]></title><link>https://blog.youkuaiyun.com/lai_li/article/details/53262907</link><guid>https://blog.youkuaiyun.com/lai_li/article/details/53262907</guid><author>lai_li</author><pubDate>Mon, 21 Nov 2016 19:35:54 +0800</pubDate><description><![CDATA[一、Linux目录配置标准：FHS因为利用Linux来开发产品或distributions的社群/公司与个人实在太多了， 如果每个人都用自己的想法来配置档案放置的目录，那么将可能造成很多管理上的困扰。 所以，后来就有所谓的 Filesystem Hierarchy Standard (FHS)标准的出炉了！ FHS是根据过去的经验一直再持续的改版的，FHS依据文件系统使用的频繁与否与是否允许使用者随]]></description><category></category></item><item><title><![CDATA[Linux学习（2）--文件权限]]></title><link>https://blog.youkuaiyun.com/lai_li/article/details/53230612</link><guid>https://blog.youkuaiyun.com/lai_li/article/details/53230612</guid><author>lai_li</author><pubDate>Sat, 19 Nov 2016 15:11:45 +0800</pubDate><description><![CDATA[用户：就是普通的一个账号，有自己私人的一些文件 
用户组：囊括了一些用户的一个整体，用户组里面的每个人都拥有访问属于用户组的公共文件的权力，而外面的则不行。
rwx是文件或目录的权限，我们有chgrp，chown，chmod命令去做出更改，同时我们一般采取两种方式，1-数字修改，2-符号修改]]></description><category></category></item><item><title><![CDATA[Linux学习（1）--基本命令、man page]]></title><link>https://blog.youkuaiyun.com/lai_li/article/details/53228584</link><guid>https://blog.youkuaiyun.com/lai_li/article/details/53228584</guid><author>lai_li</author><pubDate>Sat, 19 Nov 2016 11:22:38 +0800</pubDate><description><![CDATA[首次接触《鸟哥的Linux私房菜基础篇（第三版）》学习Linux，对于之前的一些硬件和CentOS就不做赘述了，个人的理解也不是很深刻。如果后续有时间的话，会实际操作再来做总结。Linux distribution是CentOS 6.6 (64bit)
命令行操作
[root@VM_174_157_centos ~]# commmand [-options] parameter1 parameter]]></description><category></category></item></channel></rss>