1
在XNU(OS X和iOS的內核)中廣泛用作IPC機制的Mach端口充當消息隊列的端點。Mach語言與Go語言的頻道如何相互關聯?
Go頻道以C.A.R.Hoare的Communicating Sequential Processes模型着稱。馬赫端口怎麼樣?無論Go通道的安全性和權限屬性以及Go通道的類型安全性如何,它們是否都以相同的模式工作?
在XNU(OS X和iOS的內核)中廣泛用作IPC機制的Mach端口充當消息隊列的端點。Mach語言與Go語言的頻道如何相互關聯?
Go頻道以C.A.R.Hoare的Communicating Sequential Processes模型着稱。馬赫端口怎麼樣?無論Go通道的安全性和權限屬性以及Go通道的類型安全性如何,它們是否都以相同的模式工作?
根據wikipedia馬赫端口是:
爲任務之間的通信的受保護的消息隊列;任務自己的發送和接收權限,每個端口
去實現一些在它的內存模型CSP概念。 Mach端口的實現可以但不必遵循CSP。
Mach端口是一個更高層次的結構,由OS內核管理並通信兩個獨立的存儲空間。去通道(通常)溝通兩個goroutines。
去渠道罐頭被緩衝(有效建立隊列),但不一定是,而馬赫端口總是隊列。
Go通道是輸入的,Mach端口不關心正在傳輸的信息。
Go通道不能用於通信兩個單獨的進程,Mach端口可以。
在後一點上,有一些項目,例如go-router,用於在獨立進程或甚至計算機之間的TCP網絡連接上分層Go頻道。 –