ホームページ >バックエンド開発 >C++ >GUID の一意性の主張は有効ですか?

GUID の一意性の主張は有効ですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-22 13:21:10265ブラウズ

Is the Claim of GUID Uniqueness Valid?

GUID が完全に一意ではないことの簡単な証拠

はじめに

GUID は一意であると考えられることがよくありますが、これは精査に耐えるものでしょうか?この記事では、GUID 生成の詳細を掘り下げ、その一意性について疑問を呈するコード例を提供します。

方法論的考察

関連するコードは 0 から 2128-1 まで反復し、反復ごとに GUID を生成します。このプログラムは長期間続くことが予想されていたが、異例の早期終了となった。

解決策

この問題を解決するには、複数のスレッドを使用してコードを同時に実行する必要があります。これは改良版です:

<code>for (long k = 0; k 
        {
            // 使用bigHeapOGuids检查冲突
        }
    }
}</code>

このアプローチでは、並列処理を使用して、新しく生成された GUID と、bigHeapOGuids ハッシュ セットに既に格納されている GUID の間の競合を継続的にチェックします。

話し合う

このプログラムを無期限に実行すると、GUID が一意でないことがわかります。このコードは、膨大な範囲の値を反復処理し、必然的に重複を生成することにより、一意性の議論を反証します。

免責事項

このプログラムの使用には、使用する CPU コアごとに 1 時間あたり 0.0001 ドルという独自のライセンス条項が適用されます。支払い期限は各暦月の月末となります。 PayPal アカウント情報については、著者にお問い合わせください。

結論

この変更されたコードは、よくある誤解にもかかわらず、GUID が本質的に一意ではないことを証明しています。複数のスレッドを使用することにより、プログラムは競合を効果的にテストし、いわゆる一意性の保証の誤りを証明できます。

以上がGUID の一意性の主張は有効ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。