Go语言中的Mach端口和Channel如何相互关联?

时间:2013-10-18 07:45:07

标签: go port mach

在XNU(OS X和iOS的内核)中广泛用作IPC机制的Mach端口充当消息队列的端点。

众所周知,Go Channel是以C. A. R. Hoare的沟通顺序过程为模型的。马赫港口怎么样?无论端口的安全性和权限属性以及Go Channel的类型安全性如何,它们在本质上都以相同的模式工作吗?

1 个答案:

答案 0 :(得分:2)

根据wikipedia,马赫港口是:

  

用于任务之间通信的受保护消息队列;任务拥有每个端口的发送和接收权限

  • Go在其内存模型中实现了一些CSP概念。 Mach端口实现可以但不必遵循CSP。

  • Mach端口是一个更高级别的结构,由OS内核管理并通信两个独立的内存空间。 Go频道(通常)传达两个goroutines。

  • 去通道可以缓冲(有效地构建队列)但不一定是,而Mach端口总是队列。

  • 输入通道,Mach端口不关心传输的信息。

  • Go通道不能用于通信两个独立的进程,Mach端口可以。