首頁 > 後端開發 > Golang > 主體

golang 管道線程安全嗎

(*-*)浩
發布: 2019-12-30 14:48:50
原創
5952 人瀏覽過

golang 管道線程安全嗎

如果把線程安全地定義為允許多個goroutine同時去讀寫,那麼golang 的channel 是線程安全的。不需要在並發讀寫同一個channe時加鎖。

golang中的channel                                   )

channel用於goroutine之間的通訊

如果不用channel,使用共享全域變數的方式,需要加鎖

// synchornized 同步
// golang中的 sync包中有互斥锁 
var lock sync.Mutex  // mutex 互斥
lock.Lock() // 上锁
// 多个goroutine同时对相同的数据进行修改
lock.Unlock() // 解锁
登入後複製
使用同步鎖定效率會很低

channel主要用於goroutine通訊和解決主執行緒等待goroutine執行結束再退出的問題

basic concept of channel

本質上是一個FIFO的資料結構-佇列

線程安全,不需要加鎖

channel是有類型的,如字串channel chan string,只能保存string資料

以上是golang 管道線程安全嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板