代码之家  ›  专栏  ›  技术社区  ›  optimusfrenk

GUID算法如何处理“时钟序列”?

  •  -2
  • optimusfrenk  · 技术社区  · 7 年前

    GUID算法生成从3个值开始的算法:

    • 网卡的MAC地址
    • 分辨率为100纳秒的当前时间戳
    • 称为“时钟序列”的东西:基于GUID的RFC,当时钟向后设置或时间戳与上次生成的GUID没有更改时,此值将递增。

    那么,GUID算法如何处理“时钟序列”?这可能是硬件机制吗?它是一个踏板和过程安全的软件例程吗?当计算机有计算能力每100纳秒产生这么多GUID来重置“代码序列”时,会发生什么?也许到目前为止,guid还没有过时。。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Community CDub    3 年前

    实现对编写它的任何人都是免费的。对于提供guid的每种语言/编译器/库,您不会得到关于SO的答案。

    从…起 RFC4122 :

    如果已知时钟序列的前一个值,则可以将其递增;否则,应将其设置为随机或高质量伪随机值。

    因此,大多数开发人员只选择后者。

    时钟被向后拨正是 原因 对于时钟序列。时钟序列没有链接到硬件时钟或任何类似的东西。