![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Golang八股
文章平均质量分 78
Minxi Yan
Github:Yan0613,对云计算,云原生感兴趣。
展开
-
[go八股文]k8s的核心组件
调度算法:使用预选(Predicates)和优选(Priorities)算法来确定最佳的部署位置,其中预选算法根据资源需求、节点亲和性、污点和容忍度等因素过滤出可用节点,优选算法根据资源利用率、负载均衡、数据位置等因素为可用节点打分,选择得分最高的节点。身份认证与授权:API Server支持多种身份认证机制(如X.509证书、Token、OAuth等),并可通过RBAC(基于角色的访问控制)或ABAC(基于属性的访问控制)等授权模式控制客户端对资源的访问权限。原创 2024-06-18 12:22:38 · 360 阅读 · 0 评论 -
[Go八股文]Mutex相关
Starving:表⽰该 Mutex 是否处于饥饿状态,0 表⽰没有饥饿,1 表⽰饥饿状态,说明有协程阻塞了超过 1ms。加锁时,如果当前 Locked 位为 1,说明该锁当前由其他协程持有,尝试加锁的协程并不是马上转⼊阻塞,⽽是会持续的探测 Locked 位是否变为 0,这个过程即为⾃旋过程。Woken:表⽰是否有协程已被唤醒,0 表⽰没有协程唤醒,1 表⽰已有协程唤醒,正在加锁过程中。⾃旋的好处是,当加锁失败时不必⽴即转⼊阻塞,有⼀定机会获取到锁,这样可以避免协程的切换。原创 2024-06-15 18:14:36 · 826 阅读 · 0 评论 -
[go八股]channel之channel的底层结构
waitq是一个双向链表,包含一个头节点和一个尾节点,每个节点是一个sudog结构体,记录哪个协程在等待,等待的是哪个channel,等待发送/接受的数据在哪里。结构体通常包含goroutine的引用、等待的channel、等待的状态(发送或接收)等信息。go channel是goroutine协程之间通信的一个桥梁。每个阻塞在channel上的goroutine都会被封装为一个。结构体,并添加到channel的发送等待队列或接收等待队列中。原创 2024-06-14 00:24:47 · 300 阅读 · 0 评论 -
[Go八股文]Map之Map的底层结构
Go中的map是一个指针,占用8个字节,指向hmap结构体源码中src/runtime/map.go定义了Hmap的数据结构countBnoverflowbucketsoldbucketsextramapextrabmapbmaptophashkeysvaluesoverflowbmap。原创 2024-06-13 15:54:40 · 782 阅读 · 0 评论