Go 协程超时控制的实现
Go 协程超时控制 Select 阻塞方式 Context 方式 先说个场景: 假设业务中 A 服务需要调用 服务B,要求设置 5s 超时,那么如何优雅实现? Select 超时控制 考虑是否可
Go语言指针使用分析与讲解
普通指针 和C语言一样, 允许用一个变量来存放其它变量的地址, 这种专门用于存储其它变量地址的变量, 我们称之为指针变量 和C语言一样, Go语言中的指针无论是什么类型占用内存都一样(32位4个字节, 64位
Go语言异常处理案例解析
异常处理 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常 golang中提供了两种处理异常的方式 一种是程序发生异常时, 将异常信息反馈给使用者 一
golang中tar压缩和解压文件详情
查看官方文档,官方自带的演示: // 官方演示 package main import ( "archive/tar" "bytes" "fmt" "io"
聊聊Golang的语言结构和变量问题
一、语言结构和注意事项 package main // 声明 main 包,表明当前是一个可执行程序 import "fmt" // 导入内置的fmt包 func main(){ // main函
Go并发编程之sync.Once使用实例详解
一.序 单从库名大概就能猜出其作用。sync.Once使用起来很简单, 下面是一个简单的使用案例 package main import ( "fmt" "sync" ) func ma
Go获取与设置环境变量的方法详解
前言 今天的文章比较基础,但却是必须掌握的,而且本文有些内容,也许你之前没想过。希望这篇文章能够让你理解环境变量并掌握 Go 环境变量相关操作。 01 从安装 Go 说起 其实不止是安装 Go,其他语言一本也会有
Go 互斥锁和读写互斥锁的实现
先来看这样一段代码,所存在的问题: var wg sync.WaitGroup var x int64 func main() { wg.Add(2) go f() go f() wg.W