![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
go
文章平均质量分 72
ziop-三月
一个学习IT三年的初学者,曾学习过Java,Go,Python,HTML,CSS,JS,JQuery,VUE,Mysql,Redis,Spring,SpringBoot,kafaka,rebbitmq,Gin,GORM,RPCX,kafaka。
曾参与过一些项目,算法竞赛国赛二等奖。
展开
-
Golang Map的扩容机制(1.20.3版本)
博客专注于深入探索Golang的Map扩容机制(1.20.3版本)。首先,我们详细地探讨了引发扩容操作的两个主要条件:overLoadFactor和tooManyOverflowBuckets,并特别解释了“溢出桶太多”的状况何时会出现。进入准备进行扩容的阶段,我们详细解读了flags字段的变动。在探讨扩容函数部分,我们深入分析了growWork和evacuate,特别关注了noldbuckets和它的子部分。此外,我们提供了一个独特的小结部分,方便读者回顾和理解所学的内容。文章最后侧重于描绘扩容的原创 2023-06-28 19:56:05 · 1927 阅读 · 0 评论 -
在go1.18中实现HTTP服务器的优雅关机和重启
这意味着在服务器重启的过程中,我们需要保证所有的正在处理的请求能够正常完成,而新的请求能够被新的服务器进程处理。endless包的工作原理是在接收到USR1信号时,当前进程会启动一个新的进程来接管服务,并传递给新进程所有必要的信息(例如监听的端口、文件描述符等)。新启动的进程是通过执行当前的程序路径来启动的,因此,如果在发送USR1信号之前,你已经将程序重新编译并覆盖了旧的可执行文件,那么新启动的进程就会运行新的代码。在我们的Go代码中,信号时的行为:创建一个新的进程来接管服务器,然后优雅地关闭旧的进程。原创 2023-06-26 18:35:46 · 1070 阅读 · 0 评论 -
GO 自动化安装脚本(适用于 Linux 系统)
本文介绍了一个一键安装并配置 Go 的脚本,适用于 Linux 系统。脚本可以帮助您轻松选择 Go 版本、设置安装路径、配置 Go Proxy 和开启 Go Modules 功能。通过使用此脚本,您将节省时间,专注于 Go 项目的开发。文章详细解析了脚本的每个部分,同时提供了完整脚本供直接使用。跟随本文指引,轻松实现 Go 环境的快速搭建。原创 2023-06-08 00:00:33 · 1162 阅读 · 4 评论 -
简单领略——GRPC
快速创建一个GRPC 案例原创 2022-06-19 19:48:24 · 111 阅读 · 0 评论 -
Gin框架——中间件
中间件在B/S模式下起到了功能层的作用。当用户从WEB界面向服务器提交了数据请求或者应用请求时,功能层负责将这些请求分类为数据或应用请求,再向数据库发出数据交换申请。数据库对请求进行筛选处理之后,再将所需的数据通过功能层传递回到用户端。通过如此处理,单一用户可以进行点对面的操作,无需通过其他软件进行数据转换。原创 2022-05-05 11:38:02 · 2695 阅读 · 0 评论 -
Gin——HTML模板渲染
文章目录1. 同一个文件夹下面的HTML模板2. 不同目录下名称相同的模板1. 同一个文件夹下面的HTML模板文件结构如下:package mainimport ( "net/http" "github.com/gin-gonic/gin")func main() { router := gin.Default() router.LoadHTMLGlob("temp/*") //解析 router.GET("/index", func(c *gin.Context) {原创 2022-05-05 11:36:04 · 445 阅读 · 0 评论 -
【GO基础 2】 基本数据类型和变量
基本数据类型go的基本数据类型主要分为:布尔型、整数值、 字符串型、浮点型、复数- bool // 布尔型变量- string // 字符串类型- int // 整数型 大小:4字节/8字节 一般无特殊需求整数都用int就行 - int8 // 整数型 大小:1字节 - byte // 整数型 大小:1字节 int8的别名 两者相同 - int16 // 整数型 大小:2字节 - int32 // 整数型 大小:4字节 - rune // 整数型.原创 2022-03-14 22:05:07 · 583 阅读 · 0 评论 -
【GO基础 1】 main方法与函数
文章目录一、基本结构 + 打印1.1、解析二、函数2.2、解析一、基本结构 + 打印package mainimport ( "fmt")func main() { fmt.Println("helloWorld")}1.1、解析package main当前的包为mainimport (“fmt”)go的导包方式 是 import然后圆括号包裹导入的包这里只用写导入的包就行了,不需要写具体的函数func main(){ }主方法存放的位置fmt.P原创 2022-03-13 18:07:12 · 688 阅读 · 0 评论