溶解性golang中的空结构体channel的分析
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,今天就跟大家聊聊有关溶解性golang中的空结构体channel的分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。特点省内存,尤其在事件通信
千家信息网最后更新 2025年01月31日溶解性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安全错误
数据库的锁怎样保障安全
恒指软件开发
重庆荣昌食堂配送软件开发
显卡软件开发下载
指挥自动化网络技术
峰腾网络技术有限公司官网
服务器机房有辐射吗
网络安全大问题
什么模式是用户与数据库的接口
app和服务器交互
网络安全考研院校选云南理工
图像处理 网络安全哪个更好
小学如何落实网络安全工作
核电软件开发及验证
东北网络安全宣传
国税局加强网络安全
西湖区直播软件开发
数据库怎么降低余度
如何根据日期变化数据库
存储过程如何删除数据库
把.ldf文件导入数据库
学校网络安全教育儿歌
CAE仿真软件开发
烟台公交软件开发者
软件开发最新软件
数据库应用系统的设计代码
乐亭企业网络技术答疑解惑
青岛航天信息公司代理服务器端口
江苏安卓软件开发费用是多少
大学生谈谈共筑网络安全防线
笔记本作服务器