# Packages
No description provided by the author
# Functions
NewCond 返回 关联了 l 的新 Cond .
NewLimitPool 创建一个 LimitPool 实例 maxTokens 表示一段时间内的允许发放的最大令牌数 factory 必须返回 T 类型的值,并且不能返回 nil.
NewPool 创建一个 Pool 实例 factory 必须返回 T 类型的值,并且不能返回 nil.
NewSegmentKeysLock 创建 SegmentKeysLock 示例.
No description provided by the author
# Structs
Cond 实现了一个条件变量,是等待或宣布一个事件发生的goroutines的汇合点。
在改变条件和调用Wait方法的时候,Cond 关联的锁对象 L (*Mutex 或者 *RWMutex)必须被加锁,
在Go内存模型的术语中,Cond 保证 Broadcast或Signal的调用 同步于 因此而解除阻塞的 Wait 之前。
绝大多数简单用例, 最好使用 channels 而不是 Cond (Broadcast 对应于关闭一个 channel, Signal 对应于给一个 channel 发送消息).
LimitPool 是对 Pool 的简单封装允许用户通过控制一段时间内对Pool的令牌申请次数来间接控制Pool中对象的内存总占用量.
Map 是对 sync.Map 的一个泛型封装 要注意,K 必须是 comparable 的,并且谨慎使用指针作为 K。 使用指针的情况下,两个 key 是否相等,仅仅取决于它们的地址 而不是地址指向的值。可以参考 Load 测试。 注意,key 不存在和 key 存在但是值恰好为零值(如 nil),是两码事.
Pool 是对 sync.Pool 的简单封装 会有一些性能损耗,但是基本可以忽略不计。担忧性能问题的可以参考.
SegmentKeysLock 部分key lock结构定义.
No description provided by the author