第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

是否需要同步?

是否需要同步?

Go
猛跑小豬 2021-11-01 11:01:38
我在一個(gè)對(duì)象中定義了一個(gè)變量(r.something)func (r *Runner) init() {  r.something = make(map[string]int)  r.something["a"]=1  go r.goroutine()}而 r.goroutine 使用存儲(chǔ)在 r.something 中的值而沒有同步。除了 r.goroutine() 之外,沒有其他人會(huì)讀/寫這個(gè)值不同步是否安全?換句話說:我想重用goroutine 啟動(dòng)之前在其他地方初始化的 goroutine 中的一些變量。那安全嗎?附加問題:在 r.goroutine() 完成后,我希望能夠從其他地方使用 r.something(沒有與其他 goroutine 的讀/寫重疊)。它也安全嗎?
查看完整描述

3 回答

?
大話西游666

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超14個(gè)贊

如果在這個(gè)變量上不存在不同 go-routine 的讀寫操作重疊的情況,那么你是對(duì)的:不需要任何同步。

正如您所提到的,該變量是您的 go-routine 開始之前初始化的,您實(shí)際上是安全的。


查看完整回答
反對(duì) 回復(fù) 2021-11-01
?
子衿沉夜

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊

是的,這是安全的。根據(jù)Go 內(nèi)存模型

  • 啟動(dòng)新 goroutine 的 go 語句發(fā)生在 goroutine 開始執(zhí)行之前

  • 在單個(gè) goroutine 中,happens-before 順序是程序表達(dá)的順序

這意味著您在啟動(dòng) goroutine 之前對(duì)變量所做的所有更改都在該 goroutine 中可見。

回答您的附加問題:這取決于。通常,如果r.goroutine()修改r.something并且您想從另一個(gè) goroutine 讀取它,則需要使用同步。


查看完整回答
反對(duì) 回復(fù) 2021-11-01
  • 3 回答
  • 0 關(guān)注
  • 235 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)