tinyid icon indicating copy to clipboard operation
tinyid copied to clipboard

loadNext, loadCurrent, 会产生 号段 使用上的跳跃

Open gMan1990 opened this issue 1 year ago • 1 comments

  1. 假设当前使用的号段为①
  2. 调用nextId多次后,会走进loadNext, 假设next = querySegmentId()里的querySegmentId已经执行完了,等待赋值给next
    • 假设这时候查到的号段为②
  3. 继续调用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

造成的结果: ①号段使用完了,③号段接着用,然后才可能用到②号段

gMan1990 avatar Aug 05 '23 07:08 gMan1990

@duimba hhh

gMan1990 avatar Aug 05 '23 07:08 gMan1990