原创 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(最好方式是打樁,通過打樁可以初步鎖定出錯的位置,如:進入函數前打印日誌,離開時再次打

原创 索引技術

索引技術 索引是對數據庫表中一個或多個列的值進行排序的結構。優點:大大加快檢索速度;創建唯一性索引,保證數據庫表中每一行數據的唯一性;加速表和表之間的連接;在使用分組和排序子句進行數據檢索時,可以顯著減少查詢中分組和排序的時間——大大減少

原创 北大教授警告中老年人:千萬不要死於無知!看看你做錯多少

北大教授警告中老年人:千萬不要死於無知!看看你做錯多少 演講者:齊伯力(北京大學醫學院附屬醫院內科主任) 去年我才從美國回來,此前在斯坦福呆了六年。今天我要給大家介紹很多新東西。北京市普查工作結束,北京市得了兩個冠軍,一個是高血壓冠軍,一

原创 全文索引

全文索引——非結構化數據