首页
首页
沸点
课程
直播
活动
竞赛
商城
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…