2021-04-11面试
多線程:
多線程之間如何通信/共享數據?
不需要通信;共享數據:1,加鎖的隊列,例如生產者,消費者線程,2,加鎖的全局變量。
如何排查死鎖(鎖的使用)
調試,用linux下pstack命令,https://blog.csdn.net/suifengpiao_2011/article/details/56288404?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161811699916780271592339%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=161811699916780271592339&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v29-2-56288404.pc_search_result_cache&utm_term=%E6%A3%80%E6%9F%A5%E6%AD%BB%E9%94%81%E7%9A%84%E5%91%BD%E4%BB%A4pstack&spm=1018.2226.3001.4187
1,減小鎖的粒度
{
//對共享變量加鎖保護
}
2,加鎖的方向一致
線程a->A->B? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
線程b->A->B?
? 下面的會導致死鎖:? ? ? ? ? ? ? ?
線程a->A->B
線程b->B->A
?3.盡量在編碼的時候利用技術保障加鎖以后在每個出口都有相應的解鎖邏輯
RAII技術
出現解決,未出現要避免
? ?高級面試難點:
1,隊列優化,鎖的精細控制和效率優化? ? ? ??
? ? ?2,多級隊列,(策略的設計)按照優先級? ? ?
3.? ? 多進程之間如何通信? nigex模型 ,驚群效應
網絡編程:
初級:
1一個tcp ser的基本通訊流程:先創建一個ser socket.用bind函數綁定,listen,等待客戶端連接
常用工具:tcpdump命令怎么用?
怎么樣查看一個進程開啟了哪些端口?send,recev函數的返回值?
阻塞模式和非阻塞模式socket的應用場景? poll epoll?
高級:
如何設計一個網絡庫,疑難雜癥的解決。
數據庫
增刪改查,索引,索引的結構
linux下常用命令,權限管理(連不上數據庫),事務的四個級別,每個級別是什么含義,理解一下。
總結
以上是生活随笔為你收集整理的2021-04-11面试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TCP 协议如何解决粘包、半包问题
- 下一篇: 关于递归三要素的理解