Summer Blog

LeetCode

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学习笔记

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多线程 概览

可用性问题

死锁

饥饿

活锁