Go语言中goroutine的使用

目录一、什么是 Goroutine ?二、使用 Goroutine单个 goroutine多个 goroutinesync.WaitGroup 的使用三. 结束语一、什么是 Goroutine ?在java/c++中我们要实现并发编程的时...

Golang内存管理之垃圾收集器详解

目录0. 简介1. 常见的GC算法1.1 引用计数法1.2 标记-清除1.3 分代收集2. Golang GC原理2.1 算法选择2.2 三色标记2.2.1 标记-清除算法2.2.2 三色标记算法2.2.3 屏障技术3. G...

Golang性能提升利器之SectionReader的用法详解

目录一. 简介二. 问题引入三. 基本使用3.1 基本定义3.2 使用方式3.3 使用例子四. 实现原理4.1 设计初衷4.2 基本原理4.3 代码实现五. 使用注意事项5.1 注意off值在base和lim...

golang获取客户端ip的实现

目录获取局域网ip获取客户端ip网络上的答案获取的ip是服务器的ip或者获取本地ip,然后通过ip获取详细地址,要么报错,要么或者客户端的位置不正确…直接给我整麻了~网络答...

Go语言中常见的坑以及高性能编程技巧分享

目录背景本文相关代码的验证环境一. 常见的坑1.1 数据结构1.2 Go语言特性相关二. 高性能Go编程2.1 数据结构2.2 内存管理2.3 并发编程背景代码的稳健性、高性能、可读性是我...

Golang 中的 strconv 包常用函数及用法详解

目录strconv.Atoi 和 strconv.Itoastrconv.Parse 系列函数strconv.Format 系列函数strconv.Append 系列函数strconv.IsPrint 和 strconv.IsGraphicstrconv.Quote 和 strconv...

深入了解Go语言中context的用法

目录遵循规则WithCancelWithDeadlineWithTimeoutWithValue很多 Go 项目的源码,在读的过程中会发现一个很常见的参数 ctx,而且基本都是作为函数的第一个参数。为什么要这么写呢...

详解Go语言如何实现类似Python中的with上下文管理器

目录Python 上下文管理器Go 中资源释放问题在 Go 中实现上下文管理器总结P.S.熟悉 Python 的同学应该知道 Python 中的上下文管理器非常好用,在对数据库进行读写、访问文件等...

Go高级特性探究之优先级队列详解

目录什么是heapHeap的数据结构如何实现优先级队列为什么需要使用优先级队列优点和缺点优点缺点heap PriorityQueue实现实现思路数据结构初始化优先级队列对象生产者推送任务...

Golang 操作 Kafka 如何设置消息的失效时间

在使用 Golang 操作 Kafka 时,你可以使用 Sarama 库来设置消息的失效时间。以下是一个示例代码,演示如何在生产者端设置数据失效时间:package mainimport ( "log" "time" "gith...

Go语言中实现打印堆栈的errors包的用法详解

目录Go语言打印堆栈errors包1、安装2、使用2.1 New()函数2.2 WithMessage()函数2.3 WithStack()2.4 Wrap()函数3、总结Go语言打印堆栈errors包因为Go语言提供的错误太简单了...

Go设计模式之享元模式讲解和代码示例

目录Go 享元模式讲解和代码示例概念示例dressFactory.go: 享元工厂dress.go: 享元接口terroristDress.go: 具体享元对象counterTerroristDress.go: 具体享元对象player.go:...

Golang中对json的优雅处理方式

目录背景原有方式转化为 map[string]interface预定义结构体 struct推荐: GJSON 处理总结 背景作为一种强数据类型的语言, Golang 对 json 的处理很麻烦。已知 json 的数据类型...

使用Golang如何实现简易的令牌桶算法

目录简介实现轮子令牌桶,go语言创建和使用令牌桶什么是令牌桶基本使用在开发中使用总结简介在网络中传输数据的时候时,为了防止网络拥塞,需限制流出网络的流量,使流量以比较均匀...

go语言中struct标签详解

目录一、结构体标签介绍二、json标签三、gorm标签四、form标签五、binding标签六、ini标签总结一、结构体标签介绍结构体的字段除了名字和类型外,还可以有一个可选的标签(tag):...

一文详解Golang中的errors包

目录errors.Newerrors.Iserrors.ASerrors.Unwrap小结errors.Newfunc New(text string) error错误处理是开发过程中必不可少的,使用 errors.New 函数可以创建一个表示特定错误...

Go defer 去掉闭包函数及用法分析

目录引言defer 常见用法新提案:defer 代码块反对的声音总结引言在 Go 语言里,defer 关键字是大家很爱用的。因为他有着 defer+recover+panic 的组合拳打法,还有种各种 defer cl...

Go语言中println和fmt.Println区别

目录println()函数:fmt.println()函数: 总结区别:作为一个刚刚接触Go的萌新,在学习Go语言的时候发现demo用了两种用法输出语句:package mainimport "fmt"func main() {...

初学Go必备的vscode插件及最常用快捷键和代码自动补全

目录写在前面:1. vscode必备插件1.Go、Code Runner2.Markdown All in One、Markdown Preview Enhanced、Paste Image3. vscode-icons2. vscode最常用快捷键3. vscode快速生成...

使用Golang打印特定的日期时间的操作

目录基本时间操作特定日期时间格式自定义日期时间格式解析不同格式的日期时间字符串获取指定日期时间基本时间操作首先,我们来看一些基本的时间操作。获取当前时间可以使用ti...

Golang之sync.Pool对象池对象重用机制总结

目录sync.Pool作用写入和读取sync.Pool注意点大规模Goroutine的瓶颈原理和作用sync.Pool作用对象重用机制,为了减少GC,sync.Pool是可伸缩的,并发安全的两个结构体type Pool s...

一文详解Go语言io包中的discard类型

目录1. 引言2. 介绍2.1 基本定义2.2 使用说明3. 实现原理4. 使用场景5. 总结1. 引言io.discard是Go语言标准库提供一个结构体类型,其在丢弃不需要的数据场景下非常好用。本文...

Golang基于Vault实现敏感数据加解密

目录背景数据加解密方案具体实现过程1. 准备工作2. 初始化Vault客户端3. 登录认证4. Token续租5. 加密6. 解密总结本文是《基于Vault的敏感信息保护》的姊妹篇,文中涉及的配...

Go语言 Channel通道详解

目录一、通道介绍1、声明通道2、创建通道二、channel操作1、发送2、接收3、关闭三、无缓冲通道四、有缓冲的通道1、有缓冲通道声明2、阻塞条件五、循环读取信道六、关闭通道...

一文了解Go语言io.Copy函数

目录1. 引言2. 基本说明2.1 基本定义2.2 使用示例3. 实现原理4. 注意事项4.1 注意关闭源Reader和目标Writer4.2 考虑性能问题5. 总结1. 引言io.Copy 函数是一个非常好用的函...

返回顶部
顶部