golang
已收录文章:11706篇
-
Go微服务框架在并发方面比Java更出色,比Python更快,比Node.js更高效。Go提供了多种微服务框架,包括gin-gonic、echo和fasthttp。gin-gonic是一个示例,它轻量且具有高性能,用于构建灵活性高的API。120 收藏
-
在Go中,通过通道可以安全地跨goroutine共享函数:创建通道传递函数值。在goroutine中启动函数并将其传递到通道。从通道接收函数并使用它。例如,使用通道传递Count函数值来并行计数列表元素。120 收藏
-
在Go语言中,协程间数据共享可通过指针或通道实现。使用指针时,需通过同步机制确保并发安全:1.互斥锁(Mutex)保证同一时间仅一个协程访问资源;2.读写锁(RWMutex)允许多个协程同时读取,但写入时独占资源;3.原子操作(atomic包)用于简单高效的基本类型操作。此外,通道(channel)提供安全的数据传递机制,适合协程间通信而非频繁读写。其他并发控制机制包括:4.WaitGroup用于等待协程完成;5.Cond用于条件同步;6.Once用于单次执行初始化。选择策略:性能优先且频繁读写用指针加锁120 收藏
-
blackfriday库的核心功能是遵循CommonMark规范将Markdown转换为HTML并支持多种扩展,优势在于高性能、可定制性和广泛的功能集。1.它支持表格、代码块高亮、任务列表等常用扩展,提升内容表现力;2.作为Go原生实现,处理速度快,适合实时渲染和大规模文档处理;3.提供WithExtensions()和WithRenderer()等配置选项,允许启用/禁用特定语法并自定义输出格式;4.可通过实现Renderer接口进行深度定制,满足生成非HTML格式的需求;5.支持禁用原始HTML标签,120 收藏
-
1、panic 当我们执行panic的时候会结束下面的流程: package main import "fmt" func main() { fmt.Println("hello") panic("stop") fmt.Println("world") } 输出: go run 9.go hellopanic: stop 但是panic也是可以捕获的,我119 收藏
-
一、什么是缓存击穿 当一个key是热点key时,一般会做缓存来抗大量并发,但当缓存失效的一瞬间,这些大量的并发请求会击穿缓存,直接请求数据库 为了避免缓存击穿,一种解决方法可以设置119 收藏