原创 go語言之Mutex
mutex工作機制 Mutex有兩種工作模式:正常模式和飢餓模式 在正常模式中,等待着按照FIFO的順序排隊獲取鎖,但是一個被喚醒的等待者有時候並不能獲取mutex,它還需要和新到來的goroutine們競爭mutex的使用權。新
原创 複雜四則運算程序實現
當我們遇到很複雜的四則運算,怎麼通過編程實現呢?例如:34*(23-(1+23)*4-324)*(23-32*(23-324)/(34+34))/(43-45*343)此字符串輸入,求取表達式的結果是多少呢?自己頭腦是什麼思路?回
原创 go語言之RWMutex
RWMutex特點 讀寫鎖區別與互斥鎖的主要區別就是讀鎖之間是共享的,多個goroutine可以同時加讀鎖,但是寫鎖與寫鎖、寫鎖與讀鎖之間則是互斥的。 因爲讀鎖是共享的,所以如果當前已經有讀鎖,那後續goroutine繼續加讀鎖正
原创 C++中的轉移字符
#C++中轉移字符 順序 描述 表示 ’ 單引號 字節0x27(ASCII編碼) " 雙引號 字節0x22(ASCII編碼) ? 問號 字節0x3f(ASCII編碼) \ 反斜線 字節0x5c(ASCII編碼) \a 可聽見鍾 字
原创 MySQL之分區
分合思想 技術不要拘泥於一點,重要的是編程思想,即思想是最重要的。當數據量大的時候,需要具有分的思想去細化粒度。當數據量太碎片的時候,需要具有合的思想來粗化粒度。 表分區介紹 InnoDB存儲結構 首先要先介紹一下InnoDB邏輯
原创 hash衝突解決方法
現象 關鍵字keykeykey和元素存儲位置ppp建立了一個對應關係HHH,使得p=H(key)p=H(key)p=H(key),H稱爲hash函數。而hash衝突:即數學中的多對一的場景,即對∀key1,key2且key1≠ke
原创 前端人生——CSS(盒子,浮動,定位)
出現原因:樣式寫在骨架裏面,會變得很複雜。應該達到——結構就應該寫結構。外觀就應該寫外觀。 CSS:控制外觀顯示樣式 CSS書寫位置 內部樣式表(樣式與結構部分分離) <head> ... <style> 選擇器{屬性:值
原创 web前端人生——html
存在即合理 爲什麼存在這麼多瀏覽器——主要有利潤可尋。 瀏覽器內核分爲兩部分——渲染引擎和JS引擎。渲染引擎:負責取得網頁的內容(html,xml、圖像等等)、整理信息(例如加入css等),以及計算網頁的顯示方式,然後輸出至顯示器或打
原创 分佈式之數據庫和緩存雙寫一致性方案解析
爲什麼寫這篇文章? 首先,緩存由於其高併發和高性能的特性,已經在項目中被廣泛使用。在讀取緩存方面,大家沒啥疑問,都是按照下圖的流程來進行業務操作。 但是在更新緩存方面,對於更新完數據庫,是更新緩存呢,還是刪除緩存。又或者是先刪除緩存,再更
原创 從輸入網址到最後瀏覽器呈現頁面內容,中間發生了什麼?
準備階段 當你在瀏覽器中輸入網址(例如www.coder.com)並且敲了回車以後, 瀏覽器首先要做的事情就是獲得coder.com的IP地址,具體的做法就是發送一個UDP的包給DNS服務器,DNS服務器會返回coder.com的IP,
原创 C++智能指針
C++智能指針 具體詳細細節見https://www.cnblogs.com/lanxuezaipiao/p/4132096.html void remodel(std::string & str) { std::string
原创 C++內存常見錯誤
C++內存常見錯誤 在系統開發過程中出現的bug相對而言是比較好解決的,花費在這個上面的調試代價不是很大,但是在系統集成後的bug往往是難以定位的bug(最好方式是打樁,通過打樁可以初步鎖定出錯的位置,如:進入函數前打印日誌,離開時再次打
原创 索引技術
索引技術 索引是對數據庫表中一個或多個列的值進行排序的結構。優點:大大加快檢索速度;創建唯一性索引,保證數據庫表中每一行數據的唯一性;加速表和表之間的連接;在使用分組和排序子句進行數據檢索時,可以顯著減少查詢中分組和排序的時間——大大減少
原创 北大教授警告中老年人:千萬不要死於無知!看看你做錯多少
北大教授警告中老年人:千萬不要死於無知!看看你做錯多少 演講者:齊伯力(北京大學醫學院附屬醫院內科主任) 去年我才從美國回來,此前在斯坦福呆了六年。今天我要給大家介紹很多新東西。北京市普查工作結束,北京市得了兩個冠軍,一個是高血壓冠軍,一
原创 全文索引
全文索引——非結構化數據