golang
已收录文章:186篇
-
Go中实现任务超时取消需用context.WithTimeout创建子上下文并defer调用cancel,监听ctx.Done()及时退出;context取消链为单向父子继承,子取消不影响父;I/O操作须用原生支持Context的方法或手动检查Done()。411 收藏
-
Golang函数参数始终为值传递,传递值类型时复制整个数据,函数内修改不影响原始变量;若需修改,则应传递指针。410 收藏
-
Golang多服务部署需结构清晰、容器化和自动化。1.设计模块化服务结构,各服务独立构建;2.用Docker容器化,docker-compose本地验证;3.Makefile或Go工具实现一键构建部署;4.可选Consul等服务发现。核心是标准化日志、配置、健康检查,提升协作效率。409 收藏
-
数组固定长度适合小数据,切片动态扩容更灵活;遍历和访问性能相近,但传参和扩容时切片更高效;建议小规模用数组,大规模及动态场景用切片并预设容量。398 收藏
-
select是Go语言中处理多通道操作的关键机制,类似switch但仅用于通道的发送或接收,当多个通道就绪时随机选择一个执行,确保并发安全与高效通信。395 收藏
-
索引优化是提升Golang应用查询性能的关键,需合理选择高频、高区分度字段创建索引,遵循最左匹配原则,避免全表扫描和索引失效,利用覆盖索引减少回表,结合EXPLAIN分析执行计划,使用预编译语句,并定期监控与清理无用索引,确保数据库高效运行。391 收藏