面筋
死锁的概念,如何避免死锁?
两个或者两个以上线程在执行过程中,因争夺资源而产生互相等待的现象,若无外力作用,他们都将无法推进下去,此时,称系统处于死锁。
四个条件,互斥,请求保持,不可剥夺,环路等待。
破坏任一条件即可
预防破坏请求保持,进程必须一次申请所有需要的资源。资源分层,破坏环路等待。
避免是在进程每次申请资源时判断是否是安全操作。银行家算法里,安全是绝对的,不安全不一定会死锁。
银行家算法:设置四个矩阵,分别是系统资源,已分配,剩余需求,每个进程的最大需求。在真正分配资源之前,检查是否合法,然后试探性分配,再进行安全检查,模拟进程是否能正常结束。
检测和解除,运行时检测死锁,强行回收资源。
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
配置:https://zhuanlan.zhihu.com/p/24382606?utm_source=qq&utm_medium=social&utm_oi=824586777519075328
原理:https://zhuanlan.zhihu.com/p/31196264?utm_source=qq&utm_medium=social&utm_oi=824586777519075328
鲸群:https://blog.youkuaiyun.com/russell_tao/article/details/7204260
进程调度
邻接矩阵和邻接表
https://blog.youkuaiyun.com/l_215851356/article/details/70051548
复杂度
因为邻接矩阵最坏时需要将矩阵中所有元素扫描完,元素个数是n^2个,自然算法就是O(n^2) 邻接表,只是存储了边或者弧,将邻接表扫描完就可以了,时间复杂度自然就是O(n+e)了,n是顶点数,e的边或者弧的数量
一致性hash
https://my.oschina.net/zhenglingfei/blog/405622
并查集
https://blog.youkuaiyun.com/u013546077/article/details/64509038
HR
心态很重要。
自我介绍,校园经历,Linux。
项目的缺点
HR,了解公司,职业规划(短期计划-熟悉工作环境-向导师或者同事学习,长期-在一个领域独挡一面),STAR。薪资。
ET和LT,高于水位线。虚函数,HTTP报头