原创 grpc和go module

RPC就是要像調用本地的函數一樣去調遠程函數。 但是在調用遠程函數的時候會出現一些問題: Call ID映射。在本地調用中,函數體是直接通過函數指針來指定的,我們調用函數時,編譯器就自動幫我們調用它相應的函數指針。但是在遠程調用

原创 leetcode 836矩陣重疊

給定兩個矩陣的左下座標和右上座標,如何判斷這兩個矩陣是否重疊? 解法一: 矩形重疊的情況太多,難以處理,所以轉而思考矩形不重疊的情況。 考慮rec2在rec1的左邊、右邊、上邊、下邊 左邊:rec1[0] >= rec2[2] 右

原创 爲什麼MySQL數據庫InnoDB引擎採用B+樹存儲索引?

一個節點大小定爲一頁,一個節點需要一次I/O操作。B+樹中內節點不含數據部分,其出度更大,每一個內節點可以存的關鍵值也就越多,即到達內存數據的更多,效果更好。 B+樹的葉子節點採用鏈表連接起來,適合查詢一定範圍內的數據。 在In

原创 線程啓動、結束、創建線程多個方法,join和detach

一.線程運行的開始和結束 主線程從main()函數開始執行,因此我們自己創建的線程,也需要從一個函數函數開始運行(初始函數),一旦這個函數執行完畢,就代表我們的線程運行結束。 整個進程是否執行完畢的標記:主線程是否執行完畢。 一般

原创 互斥量概念、用法、死鎖演示及解決詳解

一.互斥量的概念 保護共享數據,操作時,某個線程用代碼把共享數據鎖住、操作數據、解鎖 其他線程想操作共享數據必須等待解鎖。 互斥量: 是個類對象,理解成一把鎖,多個線程嘗試用lock()來加鎖,只有一個線程會加鎖成功,成功的標誌就

原创 面試HTTP

1.HTTP的概念 HTTP是一個在計算機世界裏專門在兩點之間傳輸文字、圖片、音頻、視頻等超文本數據的約定和規範。 2.HTTP常見的狀態碼 200 OK 成功狀態碼,表示一切正常。如果是非HEAD請求,服務器返回的響應都會有bo

原创 leetcode 409最長迴文串

給定一個包含大寫字母和小寫字母的字符串,找到通過這些字母構造成的最長的迴文串。 示例 1: 輸入: "abccccdd" 輸出: 7 解釋: 我們可以構造的最長的迴文串是"dccaccd", 它的長度是 7 迴文串分成偶數

原创 單例設計模式共享數據分析、解決

一.設計模式大概談 “設計模式”:代碼的一些寫法(這些寫法跟常規寫法不怎麼一樣):程序靈活,維護起來可能很方便,但是別人接管、閱讀代碼都會很痛苦。 用“設計模式”理念寫出的代碼很晦澀的。《head first》講設計模式,可以瞭解

原创 future其他成員函數、shared_future、atomic

一.future的其他成員函數 wait_for() #include <bits/stdc++.h> #include <thread> #include <mutex> #include <condition_variable

原创 async、future、packaged_task、promise

一.async、future創建後臺任務並返回值 希望線程返回一個結果 std::async是個函數模板,用來啓動一個異步任務。什麼叫“啓動一個異步任務”,就是自動創建一個線程並開始執行對應的線程入口函數,它返回一個std::fu

原创 內建容器

數組 定義數組 var arr1 [5]int arr2 := [3]int{1,3,5} arr3 := [...]int{2,4,6,8} //使用編譯器來推斷數組中的元素[...],如果不寫...就是切片 fmt.P

原创 測試與性能調優

測試 go語言測試文件命名:name_test.go,編譯器就是識別這個測試文件。 go test . 執行當前目錄下的測試文件。 func TestSubStr(t *testing.T) { //表格驅動測試 tests

原创 LeetCode 42接雨水

方法一: 暴力 —>超時 class Solution { int findLeftMaxHeight(vector<int>& height, int center){ int res = 0;

原创 併發基本概念及實現,進程、線程基本概念

1.併發、進程、線程的基本概念 併發:兩個或者更多的任務同時的進行;在一個時刻可以同時執行多個獨立的任務。 對於單核CPU,某個時刻只能執行一個任務,由CPU進行調度,每秒進行多次所謂的任務切換,會造成併發的假象,每個任務在切換的

原创 創建多個線程、數據共享問題

一.創建和等待多個線程 多個線程執行的順序是亂的,與操作系統內部對線程的調度機制有關。 主線程會等待所有的線程運行結束,最後主線程結束。 把thread對象放入容器裏面管理,這對一次創建大量的線程並對線程進行管理很方便。 #i