Go中,使用runtime Gosched,time Sleep哪個效能更好?

時間 2021-09-10 08:12:25

1樓:成雋

sleep不精確啊。https://

這個bug已經留了2個大版本還沒解決。

2樓:假裝懂程式設計

從cpu利用率來說runtime.Gosched應該更好吧,都是讓出cpu,runtime.Gosched讓出後,後續交給go本身的runtime去排程,不需要像sleep那樣自己定義time,runtime去排程的話,精準度應該比人為更好,比如你怎麼知道讓你的程式睡眠多少,都是乙個大概值,當你通過runtime.

Gosched讓出cpu的時候,可能此時你的g已經被安排在了下乙個排程。但是假設在你剛好sleep的時候,cpu也沒其他啥事,只能根據你設定的時間,幹等你了,利用率不是很高。

從業務角度來說,不管是runtime.Gosched還是sleep,你怎麼能保證在cpu切換來的時候,能到達你需要的狀態呢,這個是實際業務需要思考的。

3樓:葉東富

go在1.13版本及之前,沒有實現搶占式排程,假設你在乙個單CPU機器上執行,有乙個計算密集型任務,會一直計算3秒鐘,那麼在計算開始之後,這個協程會一直占用CPU資源,同乙個程序下的其他協程不會被排程。如果你在計算中間,加入runtime.

Gosched呼叫,則可以出讓CPU,讓其他協程執行。你也可以呼叫time.Sleep出讓CPU,但是runtime.

Gosched的語義會更好,如果有其他協程要執行,則讓給其他協程執行,如果沒有,自己還會繼續執行。

在1.14版本實現了搶占式排程以後,就不再需要runtime.Gosched了。

Material Design的插圖中使用的陰影是如何製作的?

鑑於這個問題也算是晾了一段時間,我自己也來新增乙個官方的部落格文章 https 題目叫鹽和胡椒,說明了谷歌設計師為實現這一特殊高光及陰影效果所使用的一些方法,也比較有參考價值。 Wongbo 瀉藥 這個絕對不是普通雜色修改透明度和顏色混合模式搞定的。我個人比較喜歡在 Ps 內完成這個噪點效果,在 P...

關於Singleton中使用DCLP和Memory barrier的一點疑問?

剛才上廁所的時候想了一下這個問題。對於 barrier,解決的問題之一就是所謂的 cache coherency problem。就是說在乙個多核心的機器上,每個核心有自己的 cache,但是它們共享一片記憶體區域。那麼就有可能出現這樣一種情況 核心 A 更新了自己的 cache,但是這個更新的值還...

為什麼在 Mathematica 中使用迴圈是低效的?

yi feng 沒用過該軟體,僅從寫程式的角度來回答這個問題,若有偏頗或者錯誤請提醒或者摺疊。程式都有空間與時間之間的矛盾,也就是說某種資料結構及演算法在面對不同型別問題時不可能總是最省記憶體又算得最快的,但在面對某一類問題時是最好的。同一問題,該軟體有多種寫法,不同寫法在內部由不同演算法和資料結構...