摘要: 双向链表 阅读全文
posted @ 2022-03-18 10:33 wangzhilei 阅读(2) 评论(0) 推荐(0) 编辑
摘要: Go 语言扩展包中提供了另一种同步原语,它能够在一个服务中抑制对下游的多次重复请求。一个比较常见的使用场景是:我们在使用 Redis 对数据库中的数据进行缓存,发生缓存击穿时,大量的流量都会打到数据库上进而影响服务的尾延时 在资源的获取非常昂贵时(例如:访问缓存、数据库),就很适合使用 golang 阅读全文
posted @ 2022-03-16 15:12 wangzhilei 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 带权重的信号量 golang/sync/semaphore.Weighted,我们可以按照不同的权重对资源的访问进行管理,这个结构体对外也只暴露了四个方法: golang/sync/semaphore.NewWeighted 用于创建新的信号量; golang/sync/semaphore.Weig 阅读全文
posted @ 2022-03-16 15:02 wangzhilei 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 在一组 Goroutine 中提供了同步、错误传播以及上下文取消的功能,我们可以使用如下所示的方式并行获取网页的数据: package main import ( "fmt" "net/http" "golang.org/x/sync/errgroup" ) func main() { var g 阅读全文
posted @ 2022-03-16 14:47 wangzhilei 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 保证在 Go 程序运行期间的某段代码只会执行一次 func main() { o := &sync.Once{} for i := 0; i < 10; i++ { o.Do(func() { fmt.Println("only once") }) } } $ go run main.go only 阅读全文
posted @ 2022-03-16 13:56 wangzhilei 阅读(4) 评论(0) 推荐(0) 编辑
摘要: # 阅读全文
posted @ 2021-12-08 16:25 wangzhilei 阅读(13) 评论(0) 推荐(0) 编辑
摘要: #环境配置 #内核配置 #基本组件安装 #高可用组件安装 #kubeadm集群初始化 阅读全文
posted @ 2021-12-07 14:06 wangzhilei 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 基本思想: Parametric Polymorphism(形式)参数多态 #基本语法 package main import "fmt" func printSlice[T any](s []T){ for _,v:=range s{ fmt.Printf("%v",v) } fmt.Print( 阅读全文
posted @ 2021-12-07 13:56 wangzhilei 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 轻量级"线程" 非抢占式多任务处理,由协程主动交出控制权 func main() { for i := 0; i < 1000; i++ { go func(i int) { //没有主动交出控制权 for { fmt.Printf("Hello from "+ "goroutine %d\n", 阅读全文
posted @ 2021-11-15 15:34 wangzhilei 阅读(26) 评论(0) 推荐(0) 编辑
摘要: #MAP 非thread-safe ##数据结构 ┌─────────────┐ │ hmap │ ├─────────────┴──────────────────┐ ┌───────────────┐ ┌─────────┐ ┌─────────┐ │ count int │ │ │ ┌──── 阅读全文
posted @ 2021-10-15 15:47 wangzhilei 阅读(27) 评论(0) 推荐(0) 编辑