golang 原子計數,互斥鎖,耗時


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()的代碼起始中使用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM