Go語言那些事兒淺談協程并發競爭資源問題

      網友投稿 824 2022-05-29

      Go語言那些事兒之淺談協程并發競爭資源問題

      我們在實際操作過程中,往往會遇到擁有多條協程并發的情況,那么當多條協程并發時,協程之間是如何競爭有限的資源的呢?本文將介紹有關內容。

      我們先看一看本文實例代碼的主函數,兩條子協程,主協程3秒后結束。

      func main() { go fun1() go fun2() time.Sleep(3 * time.Second) }

      再看看看兩條子協程分別是干些什么吧!

      func fun1(){ //遍歷字符串的每一個字符 for _,c:=range "就像老鼠愛大米"{ //如果這里使用Println的話,輸出的會是字符在字符集中的編號。 //這里f是format也就是格式的意思。 fmt.Printf("%c\n",c) //runtime.Goexit() //每隔一納秒打印一個字。 time.Sleep(time.Nanosecond) } } func fun2(){ for _,c := range"ReganYue"{ fmt.Printf("%c\n",c) //runtime.Goexit() time.Sleep(time.Nanosecond) } }

      fun1函數,是遍歷輸出"就像老鼠愛大米",值得注意的是,這里使用for…range循環遍歷字符串的話,不能使用fmt.Println,因為如果這里使用Println的話,輸出的會是字符在字符集中的編號。

      而fmt.Printf 這里f是format也就是格式化的意思。

      看看運行結果

      R 就 像 e g 老 鼠 a n 愛 Y 大 米 u e

      發現兩條協程運行的結果均勻分布。這就說明兩條協程公平競爭資源,兩條協程之間實力旗鼓相當。

      可如果激活fun1內的runtime.Goexit()

      那么輸出結果就是:

      就 R e g a n Y u e

      如果激活fun2內的runtime.Goexit()

      那么輸出結果就是:

      就 R 像 老 鼠 愛 大 米

      因為Goexit殺掉它的 goroutine,其他 goroutine 也不會受到影響。所以當fun1的所在的子協程被殺死時,不會影響fun2所在的子協程的正常運行。

      Go語言那些事兒之淺談協程并發競爭資源問題

      如果本段代碼中兩個runtime.Goexit()都激活,那么兩條協程都只會輸出一個字符。

      就 R

      因為兩條協程在輸出完一個字符后就被殺死了。

      如果兩個及以上個協程在沒有同步的情形下去訪問共享的資源,并且嘗試同一時間讀和寫共享的資源。就會出現資源競爭問題。出現的這個問題能夠讓程序變得稍微復雜,本文就暫時不討論這些復雜情況,想知道的可以關注博主,博主后期會介紹。

      我們也可以使用 go build 的 -race 參數,使用它可以了解是否存在資源競爭問題,關于 go build 的 -race 參數的使用,本篇博文暫不介紹,后期博主會盡量詳細介紹。

      Go HTTP

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:JAVA-基礎語法-多線程基礎-中斷線程
      下一篇:聯邦學習,打破模型訓練數據安全限制難題
      相關文章
      亚洲日韩亚洲另类激情文学| 久久亚洲AV无码精品色午夜| 亚洲精品国产情侣av在线| 怡红院亚洲怡红院首页| 国产精品亚洲综合| 亚洲欧美不卡高清在线| 国产亚洲精品VA片在线播放| 亚洲人精品亚洲人成在线| 亚洲成a人片7777| 亚洲毛片无码专区亚洲乱| 亚洲AV无码一区二区三区系列| 亚洲女同成av人片在线观看 | 自拍偷自拍亚洲精品播放| 亚洲av永久无码精品天堂久久 | 亚洲大尺度无码无码专区| 亚洲色偷偷偷鲁综合| 亚洲美女又黄又爽在线观看| 亚洲精品无码不卡在线播放HE| 亚洲成人影院在线观看| 亚洲精品NV久久久久久久久久| 亚洲国产综合久久天堂| 亚洲国产一区明星换脸| 亚洲精品综合久久| 亚洲小说区图片区另类春色| 亚洲人精品午夜射精日韩| 亚洲电影日韩精品 | 久久久亚洲欧洲日产国码农村| 亚洲香蕉成人AV网站在线观看| 在线精品亚洲一区二区三区| 亚洲精品无码国产| 亚洲精品线在线观看| 亚洲美女视频免费| 亚洲国产品综合人成综合网站| 激情综合亚洲色婷婷五月| 亚洲国产美女精品久久久| 亚洲另类无码专区首页| 亚洲精品网站在线观看不卡无广告| 亚洲综合另类小说色区色噜噜| 国产亚洲视频在线播放| 亚洲成AV人在线播放无码| 亚洲视频一区二区在线观看|