分布式锁的简单实现

打算每周写一篇博客,希望每周都能有新的收获。本周写的博客是我在工作中应用写的一个有趣的东西。 我们采用 pm2 进行进程管理,我们开启了多个进程,但各个进程之间并没有交流,所以,我想要全局操作某个变量时,就会出现数据安全问题,虽然在 redis 里面单个操作是原子,但我也要保证复合操作也是原子的。但我并不使用 redis 的事务,是因为这个事务会阻塞其他操作,所以,不如在应用层上实现锁,从而不阻塞 redis 。我们虽然不是分布式系统,但是是分布式进程,所以实现也参考分布式锁。

Java 源码阅读之 HashMap

对以下一段代码进行 Debug,阅读建议边 Debug 边看。 import java.util.HashMap; public class Collec { public static void main(String[] args) { HashMap a = new HashMap(); a.put("sd", "54"); a.put("sd", "125"); } }

读书的退步

我自高中以后便没有写过什么作文了,一来是没有什么闲心,二来是没有什么动力。同样的情况,我从高三开始便没有再读书了,就是那些闲书,以前我最爱看的,什么小说啊,社科啊,哲学之类的。在我高三开始,为了省下复习的时间,于是便戒了书瘾。结果是,书瘾戒了,学习却没有好,高中时候花了大量时间去读闲书,到头来却是得到了最差的结果。

在 Debian 下使用 PPA

仅仅使用 Debian 源里的软件包并不是很够,所以不可避免的,我们会使用一些第三方的软件源,比如 Arch 下的 aur , Ubuntu 的 PPA ,等等。由于 Ubuntu 是 Debian 系的发行版,两者的包管理是相通的,所以我们可以借用一下 Ubuntu 的 PPA 来扩充我们的软件库。然而,两者毕竟不是同一发行版,所以还是会有很多的差别,我们并不能保证两者的软件包一定能通用,毕竟打包并不是针对 Debian 的,不过, Ubuntu 能用的, Debian 基本能用,所以,把 Ubuntu 的 ppa 拉过来还是很有意义的。

动态规划求解 RMQ 问题

rmq 即是区间最值问题,这里是动态规划模板的讲解。所谓 dp 的方法,就是区间 dp 的方法,如果采用原始的区间 dp 方法,那么当数据量很大时会出现时间和空间的双重爆破。这里我们采用了倍增法。我们通过这个模板来观察这个的实现以及思想。