Toggle navigation
码云博客
首页
Devops
PHP
Golang
数据库
算法
Docker
K8s
Ai
杂项
Home
golang
Go 语言中 uintptr和unsafe.Pointer 的区别
小码哥
2025-04-28 19:35:39
Golang
golang
uintptr
`unsafe.Pointer`1. 定义: `unsafe.Pointer` 是一种特殊的指针类型。它可以指向任意类型的数据。你可以把它看作是 C 语言中的 `void`,但功能更受限,主要用于类型转换。2. 类型安全: 顾名思义,使用 `unsafe.Pointer` 会绕过 Go 的类型安全检查。编译器不会阻止你将一个 `int` 转换为 `unsafe.Pointer`,
阅读全文
Golang设计模式之模板方法模式
小码哥
2024-11-10 16:42:47
Golang
golang
设计模式
模板方法模式模板方法模式是一种行为型设计模式,它在父类中定义一个算法的框架,允许子类在不改变算法结构的情况下重写算法的某些特定步骤。这种模式通过把不变的部分代码放在父类中,把可变的行为延迟到子类中实现,从而提高了代码的复用性。 模板方法模式中的角色 AbstractClass(抽象类):定义了模板方法和算法的框架。它实现了一些步骤,这些步骤可以是具体的方法也可以是抽象方法
阅读全文
Go 1.23 新版本新特性之迭代器
小码哥
2024-11-09 16:58:51
Golang
golang迭代器
golang
Go1.23新特性Go 1.23 版本于2024年8月14日发布,带来了多项重大更新。本文将重点介绍 Go 1.23 版本中的迭代器(iterator)功能,这是对 Go 语言生态系统的一次重要改进。 为什么引入标准迭代器在 Go 语言中,迭代器并非新概念,但现有的迭代器设计和使用方式各不相同。为了统一迭代器的标准化形式,Go 1.23 版本引入了标准迭代器,使得开发者只
阅读全文
Golang设计模式之代理模式
小码哥
2024-10-31 16:28:40
Golang
设计模式
golang
代理模式代理模式是一种结构型设计模式,它为其他对象提供一个代理以控制对这个对象的访问。代理模式在不直接访问实际对象的情况下,提供了对目标对象的间接访问。通过引入一个代理对象来间接操作实际对象,可以在不改变实际对象代码的前提下,增加额外的功能操作,如访问控制、延迟初始化、日志记录等。 代理模式中的角色 Subject(主题):定义了RealSubject和Proxy共有的接
阅读全文
Go语言的内存对齐
小码哥
2024-09-08 16:50:56
Golang
golang
内存对齐
关于内存对齐内存对齐,即字节对齐,指代码编译后在内存的布局与使用方式。现代计算机多为32位或64位地址对齐,若变量内存未对齐,可能触发总线错误。 为什么需要内存对齐CPU访问内存是以字长为单位,而非逐个字节。例如32位CPU,字长为4字节,其访问内存单位也是4字节。这种设计旨在减少CPU访问内存次数,提升访问吞吐量。若不进行内存对齐,会增加CPU访问内存次数,降低性能。同
阅读全文
Golang sync.Cond
小码哥
2024-09-05 11:12:31
Golang
cond
sync
golang
在并发编程中,协调多个协程之间的操作是一项常见的需求。条件变量(Condition Variable)是用于解决多个协程之间复杂协调问题的一种机制。条件变量配合互斥锁(`Mutex`)使用,可以让一组协程等待某个条件成立后再继续进行,而不会一直消耗 CPU 资源进行忙等待。本文将详细介绍 Golang 中 `sync` 包提供的 `Cond` 类型,并通过示例代码展示如何使用 `Cond`
阅读全文
Go垃圾回收机制
小码哥
2024-09-04 17:56:57
Golang
golang
gc
垃圾回收
前言垃圾即为不再需要的内存块。如果这些垃圾不清理,无法再次被分配使用。在不支持垃圾回收(GC)的编程语言中,这些垃圾内存就会泄露。Golang的垃圾回收也是内存管理的一部分。了解垃圾回收,最好先了解内存分配原理。 垃圾回收算法业界常见的垃圾回收算法有以下几种: 引用计数维护每个对象的引用计数,当引用该对象的对象被销毁时,引用计数减1。当引用计数为0时,回收
阅读全文
Go语言之Context详解
小码哥
2024-08-25 16:00:23
Golang
context
golang
1. 基本概念 1.1 什么是 Context上下文 `context.Context` 在 Go 语言中用来设置截止日期、同步信号,传递请求相关值的结构体。上下文与 Goroutine 有比较密切的关系,是 Go 语言中独特的设计,在其他编程语言中我们很少见到类似的概念。主要用于超时控制和多Goroutine间的数据传递。注:这里的数据传递主要指全局数据,如 链
阅读全文
MySQL数据库事务和ACID特性
小码哥
2024-08-17 17:23:17
数据库
Singleflight
golang
MySQL数据库事务和ACID特性 1. 概述本文将深入探讨数据库事务和ACID(原子性、一致性、隔离性、持久性)特性,并详细解释MySQL是如何实现这些特性的。结论: 一致性(Consistency)是最终目标; 原子性(Atomicity)、隔离性(Isolation)、持久性(Durability)是实现一致性的手段。MySQL通过以下方式实现ACI
阅读全文
Golang sync.Mutex源码解析
小码哥
2024-08-11 17:16:19
Golang
锁
mutex
golang
Golang sync.Mutex源码解析Go 语言在 `sync` 包中提供了用于同步的一些基本原语,`sync.Mutex` 就是其中最常用的一个。 1. 基本结构Go 语言的 `sync.Mutex` 由两个字段 `state` 和 `sema` 组成。其中 `state` 表示当前互斥锁的状态,而 `sema` 是用于控制锁状态的信号量。```go//
阅读全文
上一页
1
2
下一页
热门标签
laravel (3)
Opentracing (3)
链路追踪 (2)
Jaeger (2)
golang (19)
helm (3)
CRI (1)
kubesphere (1)
k8s (9)
slices (1)
Ticker (1)
Timer (1)
mysql (9)
pattern (2)
golang迭代器 (1)
docker (3)
向量化 (1)
factory (4)
设计模式 (6)
kafka (1)
sync.Once (1)
docker-compose (1)
消息中间件 (2)
sync (2)
pool (1)
池 (1)
queue (1)
gc (1)
垃圾回收 (1)
cond (1)
test (1)
heap (1)
内存逃逸 (1)
算法 (1)
事务 (1)
Singleflight (1)
context (1)
Nginx (1)
mutex (1)
锁 (1)
ACID (1)
php (1)
udp (1)
channel (1)
并发 (1)
es (2)
HTTP (3)
tcp (2)
redis (2)
llm (1)
isito (1)
服务网格 (1)
linux (1)
云原生 (5)
rag (2)
ssh (1)
容器 (4)
devops (3)
gorm (4)
database (2)
gitlab (1)
ai (6)
chatgpt (1)
sd (1)
DB (1)
mcp (2)
量化 (1)
蒸馏 (1)
内存对齐 (1)
MySQL双写策略 (1)
值传递 (1)
uintptr (1)
置顶推荐
最新评论
友情链接
更多
×
无需注册,用以下帐号即可直接登录。
需要先增加第三方登录配置。
点击前往
最新评论