tinyid
tinyid copied to clipboard
loadNext, loadCurrent, 会产生 号段 使用上的跳跃
- 假设当前使用的号段为①
- 调用
nextId
多次后,会走进loadNext
, 假设next = querySegmentId()
里的querySegmentId
已经执行完了,等待赋值给next- 假设这时候查到的号段为②
- 继续调用
nextId
直到用完,会走进loadCurrent
。然后因为上面的next还没赋值,所以会走进querySegmentId
- 假设这时候查到的号段为③
https://github.com/didi/tinyid/blob/49976d37222ab1089a8c413b4520cc55d105d428/tinyid-base/src/main/java/com/xiaoju/uemc/tinyid/base/generator/impl/CachedIdGenerator.java#L36
https://github.com/didi/tinyid/blob/49976d37222ab1089a8c413b4520cc55d105d428/tinyid-base/src/main/java/com/xiaoju/uemc/tinyid/base/generator/impl/CachedIdGenerator.java#L69
造成的结果: ①号段使用完了,③号段接着用,然后才可能用到②号段
@duimba hhh