異步log"丟失"之謎

       前段時間,需要修復線上數據,於是寫了類似這樣一個程序:

func main(){
	
	for i := 0; i < 10000000; i++ {
		// fix users' data
		log.Infof("fix details")
        totalInfo += "xxx"
	}

    log.Infof("total info is %s", totalInfo)  // 太長了
	return
}

     結果,在進程執行完畢後(用ps確認了),沒看到最後一行那個log.  非常納悶, 以爲是中途哪一步卡住了。

     然後,半分鐘後, 文件中終於有最後那行log了。 原來, 在刷磁盤呢。

 

      

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章