LeetCode September 6, 2018 Day 1 69. Sqrt(x) public int mySqrt(int x) { if (x <= 1) return x; int l = 1, r = x; while (l < r) { int m = l + (r - l) / 2; // 防止溢出 if (x / m > m) l = m + 1; else r = m ; } return r - 1; }
Shell学习笔记 September 4, 2018 jobs 任务 sleep 100 # 前台应用,直接输入命令 sleep 100 & # 后台任务,在命令后加`&` jobs # 列出当前后台任务 fg 1 # 将任务1放回前台执行 bg 1 # 将任务1放到后台继续执行,交互式的不会继续运行 kill %1 # 杀掉任务1 pipeline 管道 touch a{0..10} # 创建文件 ls a? | wc -l # 无名管道,输出以a开头文件的行数 mkfifo /temp/f # 创建有名管道 ls a? > f # 输入到管道 wc -l /temp/f # 使用管道
Java多线程 概览 August 23, 2018 可用性问题 死锁 一组互相竞争资源的线程因互相等待,导致“永久”阻塞的现象。 避免: 破坏占用且等待条件,一次性申请所有的资源 破坏不可抢占条件,申请不到下一资源,主动释放已申请到的资源 破坏循环等待条件,按一定顺序申请资源 解决:导出现场,分析,重启服务 饥饿 高优先级线程侵占底优先级线程执行的 CPU 时间片 线程被同步块阻塞 等待的线程永远不会唤醒 活锁 任务或者执行者没有被阻塞,由于某些条件没有满足,导致一直重复尝试,失败,尝试,失败