算法之Manacher算法
给定一个字符串 s,找到 s 中最长的回文子串?
给定一个字符串 s,找到 s 中最长的回文子串?
LMAX Disruptor是一个高性能的线程间消息库。下面是其简单架构示意图

之前把ubuntu装到了ssd上,速度变得快了很多。顺手就安装了steam,昨天突然发现磁盘接近满了🤣。立马插上了一块新买的ssd。
Ubuntu + window双系统,删除window后,在grub和bios的EFI启动项中残留WindowBootManager。
单纯修改/boot/grub下的菜单配置,在执行sudo upgrade-grub2后启动项又会恢复WindowBootManager.
1000瓶药水,1瓶有毒药,服用后一小时毒发,毒药可以无限稀释,那么一小时内用几只小白鼠能够找出毒药1?
一只老鼠的状态是2种生或死,这里可以看做bit位,而1000瓶药水有1000种情况,显然我们可以使用2^10 = 1024>1000 来描述这1000种可能,而2进制数的唯一性可以唯一确定一种情况。
bitmap适用于什么场景?
bitmap的核心思想是将一个元素的可能取值映射为某个空间内的值(常见的是1bit空间,提供0,1两种状态。或是2bit空间,提供 0,1,2,3四种状态)。通过某种顺序的映射表来节省存储空间。
tmpwatch 会在指定目录中递归删除指定时间段内未被访问的文件。通常,它用于自动清除临时文件系统目录,例如 /tmp 和 /var/tmp。
lost+found 目录。tmpwatch 会根据文件的 atime(访问时间)而不是 mtime(修改时间)删除文件。tmpwatch 命令中添加其他参数来更改这些行为。警告: 不要在
/中运行tmpwatch或tmpreaper,因为该程序中没有防止这种情况的机制。
(JDK version:1.8)使用Timer执行定时任务很简单:
Timer timer = new Timer();
TimerTask task = new TimerTask() {
@Override
public void run() {
System.out.println("hello world");
}
};
timer.schedule(task, 10, 2000);// 延迟10ms后,每隔2s就执行一次timer task。下面我们来来分析Timer的源码。
我的Effective Java开发笔记
本篇是关于延时线程池的源码分析(JDK1.8)。ScheduledThreadPoolExecutor继承了ThreadPoolExecutor类,实现了ScheduledExecutorService接口。ScheduledThreadPoolExecutor 支持延后执行给定task,或是定期执行。任务在到时间后执行,但是没有任何的实时保证。对于计划执行时间相同的任务,会按照提交顺序,先进先出执行。