Timer Timer 定义后固定只执行一次,使用Reset会再触发一次. timer := time.NewTimer(time.Second) //Timer 定义后固定只执行一次,使用Reset会再触发一次. //…
分类:Go
GO 调用 DLL 类库
最近一个项目需要用到Go调用C++的DLL类库 这里记录一下坑 DLL 原型 GetDllVersion 函数原型: unsigned int GetDllVersion(void); 获取dll版本信息 返回值:DLL…
Go 定时器/延时触发器
Go 可以借助 time.After/time.Ticker 来实现延迟/定时触发器,主要原理是借助无缓冲channel无数据时读取操作会阻塞当前协程,Go会在给定的时间后向channel中写入一些数据(当前时间),故阻…
在 Fefora 上开启 Go 语言之旅
Go 编程语言于 2009 年首次公开发布,此后被广泛使用。特别是,Go 已经成为云基础设施领域的一种代表性语言,例如 Kubernetes、OpenShift 或 Terraform 等大型项目都使用了 Go。 Go …
interface作为struct field,谈谈golang结构体中的匿名接口
golang中通过组合(composite)实现类似继承(extends)和重写(override)的功能,大家可能平时用的比较多的是struct中匿名struct的写法,有没有见过struct中匿名接口(anonymo…
实战生产环境:最新K8s NameSpaces详解
本篇文章,所使用的任何镜像我都会发一个网盘链接,供大家下载学习! yaml 请到我的github上下载学习! github:https://github.com/heyangguang 有任何问题可以直接联系我的Emai…
Go 性能分析之案例一
原文地址:Go 性能分析之案例一 思考 相信大家在实际的项目开发中会遇到这么一个事,有的程序员写的代码不仅bug少,而且性能高;而有的程序员写的代码能否流畅的跑起来,都是一个很大问题。而我们今天要讨论的就是一个关于性能优…
Go学习之Channel总结
Channel是Go中的一个核心类型,你可以把它看成一个管道,通过它并发核心单元就可以发送或者接收数据进行通讯(communication)。 类型 T表示任意的一种类型 双向: chan T 单向仅发送: chan &…
defer的执行顺序与时机
我们知道defer会在函数结束时执行,那么首先思考两个问题: 如果有多个defer,执行顺序是怎样的? defer是在return之前还是之后执行的?如果defer执行的内容对返回值进行了修改,return结果是否会改变…
单元测试在 golang 中的实践
单元测试是什么? 首先需要明确的就是,单元是什么?是一个函数?一个接口?还是一个模块? 这个可能每个人心中都用不同的定义。我比较赞同观点是:单元是指一段逻辑。 因此,单元测试就是对一段代码逻辑的正确性进行校验进行测试 单…
GO语言将数字转换成字符串
通常我们遍历数组中的字符,得到的是数字,我们使用string 例 for _,str :=range strs{ fmt.Println(string(str))//只有这样,才能将字符输出 } 但是,有时,我们仅仅需要…
源码剖析golang中sync.Mutex
go语言以并发作为其特性之一,并发必然会带来对于资源的竞争,这时候我们就需要使用go提供的sync.Mutex这把互斥锁来保证临界资源的访问互斥。 既然经常会用这把锁,那么了解一下其内部实现,就能了解这把锁适用什么场景,…