首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Go语言中的Mach端口和Channel是如何关联的?

问Go语言中的Mach端口和Channel是如何关联的?
EN

Stack Overflow用户
提问于 2013-10-18 15:45:07
回答 1查看 146关注 0票数 1

在XNU( OS X和iOS的内核)中,Mach端口被广泛用作进程间通信机制,充当消息队列的端点。

众所周知,Go Channel是根据C.A.R.Hoare的通信顺序进程进行建模的。Mach端口怎么样?不管端口的安全和权限属性,还是Go Channel的类型安全,它们在本质上是相同的模式吗?

EN

回答 1

Stack Overflow用户

发布于 2013-10-18 16:38:33

根据wikipedia的说法,马赫端口是:

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

  • Go在其内存模型中实现了一些CSP概念。
  • 马赫端口是一种更高层次的结构,由操作系统内核管理,并与两个独立的内存空间通信。Go通道(通常)传递两个goroutine。
  • Go通道可以缓冲(有效地构建一个队列),但不一定要缓冲,而Mach端口始终是队列。
  • Go通道是键入的,Mach端口不关心信息是否为transmitted.
  • A Go通道不能用于通信两个单独的进程,Mach端口可以。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19444268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档