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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

以慣用方式創(chuàng)建帶有額外標志的頻道

以慣用方式創(chuàng)建帶有額外標志的頻道

Go
交互式愛情 2022-09-26 14:51:03
斷續(xù)器我希望具有這樣的功能:通道有兩個額外的字段,告訴生產(chǎn)者是否允許它發(fā)送到頻道,如果允許,告訴生產(chǎn)者消費者期望什么價值。雖然我知道如何使用共享記憶來做到這一點,但我相信這種方法違背了Go的意識形態(tài)“不要通過共享記憶進行交流;相反,通過通信來分享記憶。上下文:我希望有一個服務(wù)器S運行(除了其他人)三個戈魯?。簝H接收 UDP 數(shù)據(jù)包并將其發(fā)送到解復用器的偵聽器。解復用器,它接受網(wǎng)絡(luò)數(shù)據(jù)包并根據(jù)一些數(shù)據(jù)將其發(fā)送到幾個通道之一偵聽一個特定通道并處理在該通道上接收的數(shù)據(jù)的處理任務(wù)。為了檢查網(wǎng)絡(luò)上的某些設(shè)備是否仍然處于活動狀態(tài),處理任務(wù)將定期通過網(wǎng)絡(luò)發(fā)送nonces,然后等待k秒。在這 k 秒內(nèi),我的協(xié)議中收到 nonce 的其他參與者將發(fā)送包含(除其他信息外)nonce 的回復。解復用器將從偵聽器接收數(shù)據(jù)包,對其進行解析并將其發(fā)送到 .經(jīng)過 k 秒后,處理任務(wù)將處理由解復用器推送到 上的消息。processing_channelprocessing_channel我希望解復用器不僅盲目地將它收到的任何響應(正確類型)發(fā)送到 ,而是檢查處理任務(wù)當前是否甚至期望任何消息,如果是,它期望哪個 nonce 值。我做出這個設(shè)計決定是為了盡快丟棄不需要的數(shù)據(jù)包。processing_channel我的方法:在其他語言中,我會有一個具有以下字段的類(在偽代碼中):class ActivatedChannel{    boolean    flag_expecting_nonce;    int        expected_nonce;    LinkedList chan;}然后,解復用器在收到正確類型的數(shù)據(jù)包后,只需獲取對象的鎖,檢查是否設(shè)置了標志并且 nonce 匹配,如果是這樣,則將消息添加到 !ActivatedChannel processing_channelLinkedList chan問題:這種方法利用了鎖和共享內(nèi)存,這與Golang的“不要通過共享內(nèi)存進行通信;相反,通過溝通來分享記憶“的口頭禪。因此,我想知道... :...我的方法是否對Go的“壞”,因為它依賴于共享內(nèi)存。...如何以更像Go的方式實現(xiàn)概述的結(jié)果。
查看完整描述

1 回答

?
慕俠2389804

TA貢獻1719條經(jīng)驗 獲得超6個贊

是的,您描述的方法與Golang的慣用實現(xiàn)方式不一致。你已經(jīng)正確地指出,在上述方法中,你是通過共享記憶來溝通的。

為了以圍棋的慣用方式實現(xiàn)這一目標,其中一種方法可能是你的“記住”所有期待nonce和相應類型的nonce。每當 a 準備好接收回復時,它都會向該消息發(fā)送一個信號,表明它正在等待回復。Demultiplexerprocessing_channelsprocessing_channelsDemultiplexe

由于處于所有通信的中心,因此它可以維護它期望的相應隨機數(shù)之間的映射。它還可以維護所有期待回復的“注冊表”。Demultiplexerprocessing_channelprocessing_channels

在這種方法中,我們是Sharing memory by communicating

要傳達 a 需要回復的信息,可以使用以下命令:processing_channelstruct

type ChannelState struct {
    ChannelId        string // unique identifier for processing channel
    IsExpectingNonce bool
    ExpectedNonce    int
    }

在此方法中,不使用鎖。


查看完整回答
反對 回復 2022-09-26
  • 1 回答
  • 0 關(guān)注
  • 101 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

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