-
从源码剖析Go语言基于信号抢占式调度
在 Go 的 1.14 版本之前抢占试调度都是基于协作的,需要自己主动的让出执行,但是这样是无法处理一些无法被抢占的边缘情况。例如:for 循环或者垃圾回收长时...
luozhiyun 2023-01-02438 0 0 -
Golang中的内存对齐
在计算机领域,对于某种特定的计算机设计而言,字(word)是用于表示其自然的数据单位的术语,是用来表示一次性处理事务的固定长度。一个字的位数,即字长。
Johns 2023-01-02451 0 0 -
kafka-go 读取kafka消息丢失数据的问题定位和解决
segmentio/kafka-go 是一款开源的golang kafka读写sdk,开源地址为:https://github.com/segmentio/ka...
谢盼 2023-01-02460 0 0 -
一文教你搞懂 Go 中栈操作
多任务操作系统中的每个进程都在自己的内存沙盒中运行。在32位模式下,它总是4GB内存地址空间,内存分配是分配虚拟内存给进程,当进程真正访问某一虚拟内存地址时,操...
luozhiyun 2023-01-02440 0 0 -
一文搞懂如何实现 Go 超时控制
Go 正常都是用来写后端服务的,一般一个请求是由多个串行或并行的子任务来完成的,每个子任务可能是另外的内部请求,那么当这个请求超时的时候,我们就需要快速返回,释...
kevwan 2023-01-02442 0 0 -
Go path自定义项目路径包依赖的问题
go的项目现在基本全是go module模式,快捷方便的包依赖和版本管理,但有时候碰到一些老项目需要维护,依然是go path模式,这种古老的模式对一些新学者可...
恒恒 2023-01-02439 0 0 -
从栈上理解 Go语言函数调用
这篇文章中函数调用(Function Calls)中的函数指的是 Go 中的任意可执行代码块。在 《Go 1.1 Function Calls》中提到了,在 G...
luozhiyun 2023-01-02443 0 0 -
更简的并发代码,更强的并发控制
因为没有 泛型 支持,所以才会出现多种类型的原子类支持。以下采用 float64 作为例子:
kevwan 2023-01-02442 0 0 -
通过MapReduce降低服务响应时间
在微服务中开发中,api网关扮演对外提供restful api的角色,而api的数据往往会依赖其他服务,复杂的api更是会依赖多个甚至数十个服务。虽然单个被依赖...
kevwan 2023-01-02449 0 0 -
Go语言实现Snowflake雪花算法
每次放长假的在家里的时候,总想找点简单的例子来看看实现原理,这次我们来看看 Go 语言雪花算法。
luozhiyun 2023-01-02455 0 0