| Interface | Description |
|---|---|
| LightIdProvider | |
| LightIdProvider.Loader |
LightId 加载器,通过Segment实现
|
| Class | Description |
|---|---|
| LightId |
64 bit = 1bit(0 fixed) + 8bit (CRC8) + 55bit(block+sequence)
|
| LightIdBufferedProvider |
轻量级锁,高性能,双缓冲 light-id 提供者。
共存在以下3类线程,且读线程会升级为写线程,甚至加载线程。
同一时刻,有多个读线程,但只有唯一写线程,唯一的加载线程。
- 读线程,正常的light-id调用者
- 写线程,读线程升级或加载线程,为buffer追加片段(segment)
- 加载线程,异步线程或读线程升级,通过loader加载segment
双缓冲的运行机制如下,会跟进id的使用量,自动控制预加载量,但不超过maxCount。
- 当Id余量低于20%时,唯一异步预加载`60s内最大使用量`或`maxCount`
- 当Id余量用尽时,读线程升级为写线程,其他读线程等待,直到被唤醒或超时
- 当读线程升级写线程时,存在loader,此读线程自旋忙等后,切换buffer。
|
| LightIdProvider.Segment |
LightId 片段
|
| LightIdUtil |
Copyright © 2020. All rights reserved.