当前位置: 首页 > news >正文

【golang】go 空结构体 详解 空结构体内容占用及大小

一、空结构体基础

空结构实例 和 空结构体变量 本质是一样的

  • 1、所有空结构体地址都是一样的
  • 2、大小都为0(最独特的)
package mainimport ("fmt""time""unsafe"
)type EST struct {
}func main() {// 一、基础// 空结构实例 和 空结构体变量 本质是一样的// 1、所有空结构体地址都是一样的// 2、大小都为0(最独特的)var a ESTvar b struct{}fmt.Printf("a address %p, size %d \n", &a, unsafe.Sizeof(a))fmt.Printf("b address %p, size %d \n", &b, unsafe.Sizeof(b))if a == b {fmt.Println("......")}
}

输出结果:
a address 0x10030c028, size 0
b address 0x10030c028, size 0

二、应用场景一 充当 set

package mainimport ("fmt""time""unsafe"
)type EST struct {
}func main() {// 二、应用场景一:充当 setset := make(map[string]interface{}, 10)set["A"] = EST{}set["B"] = struct{}{}fmt.Println(len(set))for k, _ := range set {fmt.Println(k)}
}

三、应用场景二 协程阻塞

1、协程阻塞的三种方式

  • 1、一种是通过 waitGroup:通过调wait函数把本协程阻塞掉
  • 2、通过 time.Sleep()
  • 3、使用 管道 channel 读写阻塞

2、channel方式阻塞 main

package mainimport ("fmt""time""unsafe"
)type EST struct {
}func main() {// 三、应用场景二:协程阻塞// 1、一种是通过 waitGroup:通过调wait函数把本协程阻塞掉// 2、通过 time.Sleep()// 3、使用 管道 channel 读写阻塞// 下面展示为channel方式阻塞 mainctra := make(chan EST, 0)go func() {time.Sleep(3 * time.Second)fmt.Println("等待子协程执行完成!!!")ctra <- EST{}}()fmt.Println("---------")<-ctra
}
http://www.lryc.cn/news/185141.html

相关文章:

  • 身为产品经理该如何向客户推广API商品数据接口
  • 【数据结构】460. LFU 缓存
  • 文字转语音播报模块(一):阿里云nls服务使用示例
  • Vscode配置C#编程环境(win10)
  • python:xlrd 读取 Excel文件,显示在 tkinterTable 表格中
  • 深度学习——深度学习计算一
  • yolov5及yolov7实战之剪枝
  • 力扣第257题 二叉树的所有路径 c++ 树 深度优先搜索 字符串 回溯 二叉树
  • 保研之旅·终
  • 达梦数据库 视图 错误 [22003]: 数据溢出
  • 【文献阅读】【NMI 2022】LocalTransform :基于广义模板的有机反应性准确预测图神经网络
  • QQ浏览器怎么才能设置默认搜索引擎为百度
  • Go Gin Gorm Casbin权限管理实现 - 3. 实现Gin鉴权中间件
  • js 封装一个异步任务函数
  • 目标检测YOLO实战应用案例100讲-基于无人机航拍图像的目标检测
  • PyQt5配置踩坑
  • 内网渗透笔记之内网基础知识
  • vue3+elementPlus:el-select选择器里添加按钮button
  • Android 模拟点击
  • css自学框架之选项卡
  • Element Plus组件库中的input组件如何点击查看按钮时不可编辑,点击编辑时可编辑使用setup
  • 小米、华为、iPhone、OPPO、vivo如何在手机让几张图拼成一张?
  • 物联网AI MicroPython传感器学习 之 WS2812 RGB点阵灯环
  • 【GPU常见概念】GPU常见概念及分类简述
  • JVM篇---第九篇
  • 探索 GAN 和 VAE 之外的 NLP 扩散模型
  • 发现很多人分不清 jwt session token 的区别?
  • GPT系列论文解读:GPT-3
  • 神经网络中的知识蒸馏
  • jmeter利用自身代理录制脚本