在XNU(OS X和iOS的内核)中广泛用作IPC机制的Mach端口充当消息队列的端点。
众所周知,Go Channel是以C. A. R. Hoare的沟通顺序过程为模型的。马赫港口怎么样?无论端口的安全性和权限属性以及Go Channel的类型安全性如何,它们在本质上都以相同的模式工作吗?
答案 0 :(得分:2)
根据wikipedia,马赫港口是:
用于任务之间通信的受保护消息队列;任务拥有每个端口的发送和接收权限
Go在其内存模型中实现了一些CSP概念。 Mach端口实现可以但不必遵循CSP。
Mach端口是一个更高级别的结构,由OS内核管理并通信两个独立的内存空间。 Go频道(通常)传达两个goroutines。
去通道可以缓冲(有效地构建队列)但不一定是,而Mach端口总是队列。
输入通道,Mach端口不关心传输的信息。
Go通道不能用于通信两个独立的进程,Mach端口可以。