面筋
死锁的概念,如何避免死锁?
两个或者两个以上线程在执行过程中,因争夺资源而产生互相等待的现象,若无外力作用,他们都将无法推进下去,此时,称系统处于死锁。
四个条件,互斥,请求保持,不可剥夺,环路等待。
破坏任一条件即可
预防破坏请求保持,进程必须一次申请所有需要的资源。资源分层,破坏环路等待。
避免是在进程每次申请资源时判断是否是安全操作。银行家算法里,安全是绝对的,不安全不一定会死锁。
银行家算法:设置四个矩阵,分别是系统资源,已分配,剩余需求,每个进程的最大需求。在真正分配资源之前,检查是否合法,然后试探性分配,再进行安全检查,模拟进程是否能正常结束。
检测和解除,运行时检测死锁,强行回收资源。
mmap
常规IO操作需要从磁盘到内核缓存再到用户主存的两次数据拷贝。而mmap操控文件,只需要从磁盘到用户主存的一次数据拷贝过程。
Mysql
引擎 https://www.cnblogs.com/sunsky303/p/8274586.html
索引 https://www.cnblogs.com/bypp/p/7755307.html
调优:https://coolshell.cn/articles/1846.html
HTTPS
https://www.jianshu.com/p/5e3f9dfd2cb4
https://www.jianshu.com/p/ed6491169b24
Nginx
进程调度
邻接矩阵和邻接表
复杂度
因为邻接矩阵最坏时需要将矩阵中所有元素扫描完,元素个数是n^2个,自然算法就是O(n^2) 邻接表,只是存储了边或者弧,将邻接表扫描完就可以了,时间复杂度自然就是O(n+e)了,n是顶点数,e的边或者弧的数量
一致性hash
https://my.oschina.net/zhenglingfei/blog/405622
并查集
HR
心态很重要。
自我介绍,校园经历,Linux。
项目的缺点
HR,了解公司,职业规划(短期计划-熟悉工作环境-向导师或者同事学习,长期-在一个领域独挡一面),STAR。薪资。
ET和LT,高于水位线。虚函数,HTTP报头