溶解性golang中的空结构体channel的分析
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,今天就跟大家聊聊有关溶解性golang中的空结构体channel的分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。特点省内存,尤其在事件通信
千家信息网最后更新 2025年12月02日溶解性golang中的空结构体channel的分析
今天就跟大家聊聊有关溶解性golang中的空结构体channel的分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
特点
省内存,尤其在事件通信的时候。
struct零值就是本身,读取close的channel返回零值
使用场景
首先事件通知,可以通过写入 通知其他协程,但是只能通知一个。
channel := make(chan struct{})
go func() {
// ... do something
channel <- struct{}{}
}()
fmt.Println(<-channel)
和close进行配合,通知所有相关协程。
在读入被close的channel返回零值,正常的协程是读取不到这个close的。
close之后,所有协程都可以读到。
比较经典的例子就是用于stopChan作为停止channel通知所有协程。
在下面的例子中 我们可以通过s.Stop()通知所有的serverHandler协程停止工作,并且等待他们正常退出。
type Server struct {
serverStopChan chan struct{}
stopWg sync.WaitGroup
}
func (s *Server) Stop() {
if s.serverStopChan == nil {
panic("gorpc.Server: server must be started before stopping it")
}
close(s.serverStopChan)
s.stopWg.Wait()
s.serverStopChan = nil
}
func serverHandler(s *Server){
for {
select {
case <-s.serverStopChan:
return
default:
// .. do something
}
}
}
看完上述内容,你们对溶解性golang中的空结构体channel的分析有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。
内容
结构
分析
事件
例子
可以通过
就是
内存
场景
时候
更多
特点
知识
篇文章
经典
行业
资讯
资讯频道
面的
频道
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
决策树 r语言内置数据库
远程管理服务器被锁
网络安全手机支付
价格数据库维护制度
衡阳县网络安全与信息化工作会
采购数据库云服务怎么入账
专科找软件开发好找吗
国网公司网络安全要干什么
三级数据库的优点
网络安全密码评测
sql数据库界面
nosql云数据库
收银软件安装前台装不装数据库
易耀铭网络技术有限公司
服务器主板架构
网络安全法第64条
北三县三河互联网科技发展
襄阳青少年网络安全
网络技术题库选择
linux 目录服务器
邯郸JAV软件开发工程师
软件开发供应商入围项目
网络安全日常检查表模板
日记排版软件开发
什么用来比喻大数据库
sql sever报表服务器
姜堰区网络技术厂家价格
广东号码软件开发
杭州金投科技互联网
方舟服务器改技能点