亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

共享內存與Go通道通信

共享內存與Go通道通信

Go
胡說叔叔 2021-04-06 12:15:03
Go的口號之一是“不要通過共享內存進行通信;而是通過通信共享內存。我想知道Go是否允許在同一臺機器上運行的兩個不同的Go編譯二進制文件相互通信(即客戶端-服務器),以及與C ++中的boost :: interprocess相比,速度有多快?到目前為止,我所看到的所有示例僅說明了相同程序例程之間的通信。一個簡單的Go示例(帶有單獨的客戶端和服務器代碼)將不勝感激!
查看完整描述

3 回答

?
FFIVE

TA貢獻1797條經驗 獲得超6個贊

當我讀到這篇文章時,我想到的第一件事就是Stackless Python。在圍棋通道讓我想起很多無堆棧的Python,但是這可能是因為(一)我用它和(b)中的語言/想法,他們實際上都來自我從來沒有碰到。


我從未嘗試將通道用作IPC,但這可能是因為替代方法可能更安全。這是一些偽代碼:


程序1

chan = channel()

ipc = IPCManager(chan, None)

send_to_other_app(ipc.underlying_method)


chan.send("Ahoy!")

程序2

chan = channel()

recv_from_other_app(underlying_method)

ipc = IPCManager(chan, underlying_method)


ahoy = chan.recv()

如果您使用傳統的IPC方法,則可以在每一側都有通道,將其通信包裝在其頂部。這導致了一些實現上的問題,我什至無法考慮如何解決,并且可能會出現一些意外的競爭情況。


但是,我同意。通過具有Go通道相同靈活性的流程進行通信的能力非常出色(但我擔心會不穩定)。


但是,將簡單的插座包裝在兩側各有一個通道即可獲得幾乎所有的好處。


查看完整回答
反對 回復 2021-04-26
  • 3 回答
  • 0 關注
  • 300 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號