2013-10-18 64 views
1

在XNU(OS X和iOS的內核)中廣泛用作IPC機制的Mach端口充當消息隊列的端點。Mach語言與Go語言的頻道如何相互關聯?

Go頻道以C.A.R.Hoare的Communicating Sequential Processes模型着稱。馬赫端口怎麼樣?無論Go通道的安全性和權限屬性以及Go通道的類型安全性如何,它們是否都以相同的模式工作?

回答

2

根據wikipedia馬赫端口是:

爲任務之間的通信的受保護的消息隊列;任務自己的發送和接收權限,每個端口

  • 去實現一些在它的內存模型CSP概念。 Mach端口的實現可以但不必遵循CSP。

  • Mach端口是一個更高層次的結構,由OS內核管理並通信兩個獨立的存儲空間。去通道(通常)溝通兩個goroutines。

  • 去渠道罐頭被緩衝(有效建立隊列),但不一定是,而馬赫端口總是隊列。

  • Go通道是輸入的,Mach端口不關心正在傳輸的信息。

  • Go通道不能用於通信兩個單獨的進程,Mach端口可以。

+0

在後一點上,有一些項目,例如go-router,用於在獨立進程或甚至計算機之間的TCP網絡連接上分層Go頻道。 –