import "sync" import "sync/atomic" import "time" import "runtime"
1.runtime.Gosched()表示讓CPU把時間片讓給別人,下次某個時候繼續恢復執行該goroutine,自己一般是阻塞了,這是一個很高級的sleep,我們經常會遇到要sleep多久的問題,這里不用考慮了,別人完成后,自然會通知你。
2.var mutex sync.Mutex 定義一個互斥鎖變量,使用atomic進行相關的原子操作,對於操作的變量需要讀取訪問時,Lock()這個mutex 來確保對該變量的獨占訪問,操作完成后 Unlock()這個mutex,為了確保這個 Go 協程不會在調度中死掉,我們在每次操作后明確的使用 runtime.Gosched()進行釋放,這個釋放一般是自動處理的。
3.記錄運行時間 運行開始時使用t := time.Now()記錄起始時間,程序結束時使用 time.Now().Sub(t)來獲取總耗時(1.xxxs),一般是main()的代碼起始中使用
