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

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

Golang、App Engine、通道和線程安全

Golang、App Engine、通道和線程安全

Go
浮云間 2021-08-16 15:52:32
http://blog.golang.org/go-and-google-app-engine“此外,盡管存在 goroutine 和通道,但當(dāng) Go 應(yīng)用程序在 App Engine 上運(yùn)行時(shí),在給定實(shí)例中僅運(yùn)行一個(gè)線程。也就是說,所有 goroutine 都運(yùn)行在單個(gè)操作系統(tǒng)線程中,因此沒有 CPU 并行性可用于給定客戶請(qǐng)求。我們預(yù)計(jì)此限制將在某個(gè)時(shí)候取消”那是在 2011 年 5 月。它仍然是真的嗎?我有一個(gè)應(yīng)用程序,它只利用 Golang 的速度;獲取一些輸入數(shù)據(jù),對(duì)其執(zhí)行內(nèi)存計(jì)算,返回結(jié)果。永遠(yuǎn)不要接觸數(shù)據(jù)存儲(chǔ)區(qū)或任何其他 App Engine API。我需要應(yīng)用程序來執(zhí)行許多計(jì)算,理想情況下具有某種程度的并行化。因?yàn)槲沂且粋€(gè) Golang 菜鳥,所以我只是在沒有考慮線程安全的情況下編寫了算法。當(dāng)我一次發(fā)送一個(gè)請(qǐng)求時(shí),這很有效,但是當(dāng)我嘗試并行發(fā)送多個(gè)計(jì)算時(shí),所有結(jié)果都是錯(cuò)誤的。我懷疑,但不知道 100%,線程安全是問題所在,尤其是因?yàn)樗惴ㄊ褂玫貓D,而地圖不是線程安全的http://golang.org/doc/faq#atomic_maps所以。如何使我的算法線程安全并獲得某種程度的并行性。第一個(gè)想法是使用通道,這似乎是線程安全的:是否可以將 Go 的緩沖通道用作線程安全隊(duì)列?但是后來我發(fā)現(xiàn)頂部的鏈接表明頻道可能不可用。所以..如果它們不可用,也許我需要為計(jì)算設(shè)置一個(gè)任務(wù)隊(duì)列,它一次只能執(zhí)行一個(gè)計(jì)算。有人可以啟發(fā)我了解在 Golang App Engine 上實(shí)現(xiàn)一定程度線程安全并行化的最佳模式嗎?謝謝。
查看完整描述

2 回答

?
慕哥9229398

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

Google Appengine 目前只允許一個(gè)操作系統(tǒng)線程。


了解操作系統(tǒng)線程如何;Goroutines 及其堆棧;和調(diào)度器工作,我推薦閱讀Scalable Go Scheduler 提案或Go Runtime Scheduler 分析。


由于您可以在單個(gè)線程上擁有多個(gè)通道和 goroutine,因此 Appengine 可以很好地處理concurrency。如果您需要并行性(即不僅運(yùn)行多個(gè) goroutine,而且在多個(gè)處理器上運(yùn)行它們),那么 Appengine 目前不是答案,因?yàn)樗?GOMAXPROCS 設(shè)置為 1。


就您的特定代碼而言,您沒有提供任何我們可以查看并幫助調(diào)試您的競(jìng)爭(zhēng)條件的代碼。要自己這樣做,您可以從閱讀這篇關(guān)于并使用Go Race Detector 的博客文章中受益


查看完整回答
反對(duì) 回復(fù) 2021-08-16
?
BIG陽

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

我不知道應(yīng)用引擎當(dāng)前是否支持多個(gè)操作系統(tǒng)線程,但是即使只有一個(gè)操作系統(tǒng)級(jí)線程可用,您也絕對(duì)可以使用通道。您提供的鏈接確實(shí)聲明“存在 goroutine 和通道”,它們只是在一個(gè)操作系統(tǒng)級(jí)線程中處理。


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

添加回答

舉報(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)