1 回答

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超9個(gè)贊
我認(rèn)為您假設(shè) Go 有一些 Python 沒(méi)有的特殊 IPC 方式;這不完全正確。通道對(duì)于單個(gè)進(jìn)程內(nèi)的通信很有用。如果您希望這些程序真正獨(dú)立(進(jìn)程),您將需要所有常用的 IPC - 您可以使用管道、套接字、共享內(nèi)存或其他任何東西。
我個(gè)人建議使用套接字,因?yàn)?Go 非常適合網(wǎng)絡(luò)編程和編寫(xiě)套接字服務(wù)器和客戶(hù)端。此外,一旦您的應(yīng)用程序使用套接字,就可以更輕松地將這些不同的進(jìn)程移植到多臺(tái)機(jī)器上、跨 Internet 等運(yùn)行。此外,您還可以利用更高級(jí)別的協(xié)議級(jí)別并使用諸如 RPC 之類(lèi)的東西。
要?jiǎng)?chuàng)建套接字服務(wù)器,請(qǐng)使用net.Listen
, 并Accept
在返回的對(duì)象上循環(huán)調(diào)用。返回的每個(gè)連接Accept
都是一個(gè)您可以與之通信的遠(yuǎn)程客戶(hù)端——如果您想要多個(gè)客戶(hù)端之間的并發(fā),我建議您在這里使用 goroutine。
然而,對(duì)于像您這樣的項(xiàng)目的第一次削減,我會(huì)選擇net/rpc
使用起來(lái)非常簡(jiǎn)單并提供更高級(jí)別的 API 來(lái)向其他進(jìn)程發(fā)送遠(yuǎn)程命令的包。
- 1 回答
- 0 關(guān)注
- 372 瀏覽
添加回答
舉報(bào)