随笔-201810
- 程序=數據結構+算法
無關語言,編程即為為針對類型的讀寫操作。
- ZK中Watch機制---觀察者模式
服務端node發生改變時,會通知相關client,那么這個流程是怎么樣呢?
客戶端與服務端是長連接(會保持多久),服務端是通過這個長連接發送變更信息給客戶端嗎?服務端是按順序輪詢所有監聽的客戶端?
watch采用推拉機制,服務端推送事件類型與路徑(NodeDataChangee、NodeDeleted等),客戶端根據相關信息從zk拉取數據。
- go語言中interface內存結構,以及和struct是如何關聯的?
- 程序設計過程中,如何判斷是否使用單例模式?
像開發過程中,遇到許多空結構體,只是用來實現某一接口,即其內存結構中Data=nil,itable指向相應func,這種情況比較適合采用單例模式,多個類沒有意義。---參考go語言單例實現,sync.once
- go開發過程中,接口設計盡量細,通過接口嵌套關系組成接口矩陣
- error與panic區別
error更適用于業務處理過程中的異常,而panic一般用于處理意料之外的異常
- 程序執行過程
應用程序執行過程中,通過JIT即時編譯為機器碼,在程序中執行。可通過系統調用創建線程,一般為內核線程。在線程執行過程中,可能會遇到用戶態與內核態的切換(涉及到用戶棧與內核棧),通過內存地址來實現狀態轉換。
該過程中,會遇到回調,其實應該對應順序流程中最后一步加上回調的地址即可。
總結
- 上一篇: SE14 激活并调整数据库
- 下一篇: 图说相对论与量子论