首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
go
订阅
faunjoe
更多收藏集
微信扫码分享
微信
新浪微博
QQ
33篇文章 · 0订阅
图解Golang的channel底层原理
废话不多说,直奔主题。 buf是有缓冲的channel所特有的结构,用来存储缓存数据。是个循环链表 lock是个互斥锁。 recvq和sendq分别是接收(<-channel)或者发送(channel <- xxx)的goroutine抽象出来的结构体(sudog)的队列。是个…
快速理解Go数组和切片的内部实现原理
很多人对Go语言的array和slice傻傻分不清楚,今天我们就从底层出发,来聊聊它俩到底有什么区别。 几乎所有计算机语言,数组的实现都是相似的:一段连续的内存,Go语言也一样,Go语言的数组底层实现就是一段连续的内存空间。每个元素有唯一一个索引(或者叫下标)来访问。如下图所示…
深入 Go 并发模型:Context
在Go服务器中,每个传入请求都在其自己的goroutine中处理。 请求处理程序通常会启动其他goroutine来访问后端,例如数据库和RPC服务。 处理请求的goroutine集合通常需要访问特定于请求的值,例如最终用户的身份,授权令牌和请求的截止日期。 当请求被取消或超时时…
Go Web轻量级框架Gin学习系列:多种数据响应格式
我们在《Go Web轻量级框架Gin学习系列:安装与使用》已经讲过如何安装Gin框架以及如何定义各种处理HTTP请求的方法了,这篇文章就接着讲讲接收到客户端请求后,怎么响应客户端请求以及有多种响应数据格式。 上面的例子中,我们定义了一个处理HTTP GET请求的方法,回调用函数…
Golang环境变量设置详解
无论你是使用Windows,Linux还是Mac OS操作系统来开发Go应用程序,在安装好Go安装语言开发工具之后,都必须配置好Go语言开发所要求的 环境变量,才算初步完成Go开发环境的搭建。 但对于一些初学者来说,可能不太明白Go语言中常用的环境变量(Environment …
go语言标准库 - log
1. 简介 2. 直接使用标准Logger 3. 使用自定义Logger 4. 将log写入指定文件中 1. 简介 2. TCP监听端口,等待log写入 3. 通过Dial函数,生成Writer实例,向TCP服务写入log 1. 简介 1.8 打印对应函数调用栈帧的log(Ou…
图解Go select语句原理
Go 的select语句是一种仅能用于channl发送和接收消息的专用语句,此语句运行期间是阻塞的;当select中没有case语句的时候,会阻塞当前的groutine。所以,有人也会说select是用来阻塞监听goroutine的。 还有人说:select是Golang在语言…
Go Struct超详细讲解
Go语言中提供了对struct的支持,struct,中文翻译称为结构体,与数组一样,属于复合类型,并非引用类型。 Go语言的struct,与C语言中的struct或其他面向对象编程语言中的类(class)类似,可以定义字段(属性)和方法,但也有很不同的地方,需要深入学习,才能区…
go modules 的一些细节
在一些Java的项目中,有 Maven等这些版本管理工具,可以很好的管理各种版本依赖关系,但是在 Golang 的项目中,之前官方并没有提供版本管理工具,以前都是用 go get 进行安装, 随着项目的变大, 就处理这种依赖关系就变得很麻烦, 原文。 为了解决版本依赖问题, 官…
图解Golang的GC算法
虽然Golang的GC自打一开始,就被人所诟病,但是经过这么多年的发展,Golang的GC已经改善了非常多,变得非常优秀了。 经典的GC算法有三种:引用计数(reference counting)、标记-清扫(mark & sweep)、复制收集(Copy and Collec…