首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过渠道进行通信

通过渠道进行通信
EN

Stack Overflow用户
提问于 2017-11-23 13:40:40
回答 2查看 51关注 0票数 0

考虑一下这种情况。有一家主要的goroutine和十家子公司。他们都可以访问channel。主通道向该信道发送1000号码,子通道将从中读取。是否有任何保证,每个附属戈鲁丁将准确读取100个数字,或者这个数额可能会变化,就像一些戈鲁丁将读取99个数字和另一个101个?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-23 13:44:39

不,没有保证,因为它取决于每个goroutine的运行时,这取决于在CPU中分布得有多好。

票数 2
EN

Stack Overflow用户

发布于 2017-11-24 05:45:54

通过一个未缓冲的通道来调度goroutine,那么有趣的是,这个通道纯粹是一种阻塞机制--因为这个值永远不会被“发送到”通道中,而且实际上什么也不会从它中读取。

一个没有缓冲的通道纯粹是一种同步机制:对于在通道上发送的goroutine来说,它的工作方式更接近于“睡眠直到某个goroutine准备接收”,而对于接收的goroutine则是“在某个goroutine准备发送之前睡觉”。

这应该清楚地表明,发送和接收没有内置任何公平或分配系统--它们纯粹是先到先得的,或者根据调度程序当前的负载可能更加武断。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47456922

复制
相关文章

相似问题

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