logo头像

待到风起时,扬帆济沧海

Golang

Go-GMP模型

https://learnku.com/articles/41728 GMP 模型 G= Goroutine 协程,P=Processor 处理器, M=Thread 线程 全局队列(Global Queue):存放等待运行的 ...

Go-深入解析slice底层实现

原文地址:https://halfrost.com/go_slice/ 切片是 Go 中的一种基本的数据结构,使用这种结构可以用来管理数据集合。切片的设计想法是由动态数组概念而来,为了开发者可以更加方便的使一个数据结构可以自动增加和减...

Go-log日志

日志使用o语言为我们提供了标准的log包,来跟踪日志的记录。下面我们看看日志包log的使用 1234func main() { log.Println("这是百度地址:","http://www...

Go-错误(error)处理方案

error接口error其实是一个接口,内置的,看下他的定义 12345// The error built-in interface type is the conventional interface for// represen...

Go 中 defer 与 return 之间的迷之执行顺序

执行顺序偶然间发现了一个有意思的地方:在使用defer时,匿名返回值的函数和命名返回值的函数的返回结果是不一样的。具体见如下代码: 123456789101112131415161718192021222324252627282930...

Go 中 defer坑

defer nil函数123456789func() { var run func() = nil defer run() fmt.Println("runs")}//outputruns...

Go-channel总结

channel的使用场景把channel用在数据流动的地方: 消息传递、消息过滤 信号广播 事件订阅与广播 请求、响应转发 任务分发 结果汇总 并发控制 同步与异步 channel的基本操作和注意事项channel 存在3种状态 ...

Golang sync 包的相关使用方法

为什么需要锁在并发的情况下,多个线程或协程同时去修改一个变量,可能会出现如下情况: 1234567891011121314151617181920212223242526package mainimport ( "fmt" ...

Go-context详解

背景golang在1.6.2的时候还没有自己的context,在1.7的版本中就把golang.org/x/net/context包被加入到了官方的库中。golang 的 Context包,是专门用来简化对于处理单个请求的多个goro...

protobuf

grpc与protobufProtobuf 协议详解各语言类型.proto TypeC++ TypeJava TypePython Type[2]Go TypeRuby TypeC# TypePHP TypeDart Typedoub...