Time of Update: 2017-06-22
標籤:上海 允許 rac 學校 article 在家 地方 面試 技術 之前學習了好久的java
Time of Update: 2017-06-21
標籤:shell sel 計數排序 www .com map bsp size archive 【轉】經典排序演算法地址:http://www.cnblogs.com/kkun/archive/
Time of Update: 2017-06-22
標籤:操作符 public blog his 部分 logs const targe span 原文寫的非常好,來自這裡一個函數如果說是“異常安全”的,必須同時滿足以下兩個條件:1.不泄漏任何資
Time of Update: 2017-06-23
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。相信作為服務端開發尤其是高效能服務開發的猿們,曾經面試都曾經被問到進程,線程之類的問題,作為作業系統最核心的概念,這些X程就像我們的一個個工具,是我們在開發過程中經常接觸的概念,對於這些概念的不清晰我們便發現寫的代碼功能是對的,代碼是渣的,將直接體現在我們代碼的低效率,高bug率並附帶問題出現都不知到問題出在哪裡,作為新時代的猿我們原不需要那麼多時間去解bug,我們需要更多時間陪女票,不是嗎?
Time of Update: 2017-06-23
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
Time of Update: 2017-06-22
這是一個建立於
Time of Update: 2017-06-22
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。前言最近看網站有同學提問golang中方法的receiver為指標和不為指標有什麼區別,在這裡我以簡單易懂的方法進行說明,協助剛剛學習golang的同學.方法是什麼其實只要明白這個原理,基本就能理解上面提到的問題.方法其實就是一種特殊的函數,receiver就是隱式傳入的第一實參.舉個例子type test struct{ name string}func (t test) TestValue() {}func (t
Time of Update: 2017-06-22
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。代碼 如下 :package pool type Pool struct { mutex sync.Mutex resources chan io.Closer factory func()(io.Closer,error) closed bool}func (p *Pool) take()(io.Closer,error){ return
Time of Update: 2017-06-21
這是一個建立於
Time of Update: 2017-06-21
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。defer與panicfunc中defer是隊列形式儲存的,panic執行後面的defer不排入佇列package mainimport ( "fmt")func main() { defer_call()}func defer_call() { defer func() { fmt.Println("列印前") }() defer func() { fmt.Println(
Time of Update: 2017-06-21
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 Golang的提供的同步機制有sync模組下的Mutex、WaitGroup以及語言自身提供的chan等。這些同步的方法都是以runtime中實現的底層同步機制(cas、atomic、spinlock、sem)為基礎的,本文主要探討Golang底層的同步機制如何?。1 cas、atomic cas(Compare And
Time of Update: 2017-06-21
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Go的context的問題2017-05-29最近被由context引發的一個bug坑得不輕,所以反思一下Go的context的問題。context是隱式的約束,沒有檢測如果我們寫一個函數,比如:func f(a int, b []byte) {}我們知道它需要哪些參數,編譯器是會幫我做檢查的,當我調用f(3, "sdfsdf")它就會報錯。可是如果是context,就變成了一種隱式的約束,編譯器不會幫我們做檢查,
Time of Update: 2017-06-21
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。目錄 [−] 執行命令並獲得輸出結果將stdout和stderr分別處理命令執行過程中獲得輸出命令執行過程中獲得輸出2命令執行過程中獲得輸出3改變執行程式的環境(environment)預先檢查程式是否存在管道管道2 原文: Advanced command execution in Go with os/exec by Krzysztof
Time of Update: 2017-06-21
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。目錄 [−] 將exported類型變為其它package不可訪問訪問其它package中的私人方法訪問其它package中的struct 私人欄位更hack的方法參考文檔 熟悉C++、Java、C#等物件導向的程式設計語言的同學,在學習Go語言的過程中,經常會被存取權限所困擾,逐漸才能瞭解這樣一個事實:
Time of Update: 2017-06-21
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。誰是最快的Go Web架構?, 這是我去年發布的Go web 架構的評測。現在一年過去了,有些架構因為缺乏維護而被放棄了,又有新的輪子被創造出來,既有的輪子也在不停的演化升級,來去之間,Go的版本也已經升級的1.8了。 青年節前, kirillDanshin提了一個issue,希望能更新最新的測試結果,現在這篇文章就記錄了最新的測試結果。測試環境CPU: Intel(R) Xeon(R) CPU E5-2630 v3 @
Time of Update: 2017-06-21
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。這是 Golang官方的一個總結: SliceTricks由於引入了內建的append的方法, 包container/vector的很多方法都被移除了,可以被內建的append和copy方法代替。下面是棧vector的操作方法的實現,使用slice實現相關的操作。AppendVector1a = append(a, b...)Copy1234b = make([]T, len(a))copy(b, a)//
Time of Update: 2017-06-21
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。目錄 [−] 使用 unsafe 操作指標實現自旋鎖使用 channel 實現效能比較參考資料 Go標準庫的sync/Mutex、RWMutex實現了sync/Locker介面,
Time of Update: 2017-06-21
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。今天讀了一下 fasthttp 的源碼,其中讀到了 workpool ,做了一些注釋。package fasthttpimport ( "net" "runtime" "strings" "sync" "time")// workerPool serves incoming connections via a pool
Time of Update: 2017-06-21
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。在用 goreman 管理整個 TiDB 叢集的時候,我發現 goreman 的 run stop 功能並不能正常的幹掉 TiDB 組件,開始我覺得是我們自己代碼的沒有,沒有很好的處理相關訊號,但後來發現,TiDB 這邊是壓根沒有收到訊號,所以問題鐵定在其他的地方,於是瀏覽下 goreman 的源碼,發現使用的是 /bin/sh -c 的方式來啟動的 TiDB 程式,可能就跟這個有關係。首先,寫兩個簡單的程式,一個是直接啟動進程,
Time of Update: 2017-06-21
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Etcd團隊剛剛興奮地公布了etcd 3.x系列中的最新成員——etcd 3.2.0。這套新版本迎來了代理改進、強化後端並發性、分布式協調服務、更為輕的Go用戶端以及JWT身分識別驗證等新的功能與特性。在今天的文章中,我們將展示etcd