路漫漫其修远兮
吾将上下而求索

go

go学习:pprof基础使用

前言 如果要说在 golang 开发过程进行性能调优,pprof 一定是一个大杀器般的工具。但在网上找到的教程都偏向简略,难寻真的能应用于实战的教程。这也无可厚非,毕竟 pprof 是当程序占用资源异常时才需要启用的工具,而我相信大家的编码...

go学习:内存管理之代码的逃逸分析

基本上,每种编程语言都有其自己的内存模型。每个变量,常量都存储在内存的某个物理位置上,这些存储位置通过内存指针访问。 至于变量,就是程序里赋予内存存储位置的名称。程序可以根据需要进行操作,并且可以将新值分配给相同的内存存储位置。而常量也是赋...

go学习:sync.Mutex 和 sync.RWMutex

介绍 golang 中的 sync 包实现了两种锁: Mutex:互斥锁 RWMutex:读写锁,RWMutex 基于 Mutex 实现 Mutex(互斥锁) Mutex 为互斥锁,Lock() 加锁,Unlock() 解锁 在一个 gor...

go学习:goroutine并发调度模型

– 并发,编程里面最核心的主题,一直以来都是被开发者谈及最多的话题;go语言是通过goroutine实现并发编程,goroutine具有消耗资源低、运行效率高等特点;官方宣称原生goroutine并发成千上万不成问题。那么,理解...

go学习:分布式锁

– 分布式锁 在单机程序并发或并行修改全局变量时,需要对修改行为加锁以创造临界区。为什么需要加锁呢?我们看看在不加锁的情况下并发计数会发生什么情况: package main import (  &...

etcd学习:分布式锁实现

概述 在传统单体应用单机部署的情况下,可以使用Java并发处理相关的API(如ReentrantLock或Synchronized)进行互斥控制。在单机环境中,Java中提供了很多并发处理相关的API。但是,随着业务发展的需要,原单体单机部...