Kurzer Beweis, dass GUIDs nicht absolut eindeutig sind
Einführung
GUIDs gelten oft als einzigartig, aber hält das einer Überprüfung stand? Dieser Artikel befasst sich mit den Details der GUID-Generierung und stellt ein Codebeispiel bereit, das ihre angebliche Einzigartigkeit in Frage stellt.
Methodische Überlegungen
Der relevante Code iteriert von 0 bis 2128-1 und generiert für jede Iteration eine GUID. Obwohl mit einer langen Laufzeit des Programms gerechnet wurde, wurde es ungewöhnlich früh beendet.
Lösung
Um dieses Problem zu beheben, muss der Code gleichzeitig mit mehreren Threads ausgeführt werden. Dies ist eine verbesserte Version:
<code>for (long k = 0; k { // 使用bigHeapOGuids检查冲突 } } }</code>
Dieser Ansatz verwendet Parallelverarbeitung, um kontinuierlich auf Konflikte zwischen neu generierten GUIDs und GUIDs zu prüfen, die bereits im bigHeapOGuids-Hash-Set gespeichert sind.
Diskutieren
Wenn Sie dieses Programm auf unbestimmte Zeit ausführen, ist es offensichtlich, dass die GUID nicht eindeutig ist. Dieser Code widerlegt das Eindeutigkeitsargument, indem er über einen großen Wertebereich iteriert und unweigerlich Duplikate erzeugt.
Haftungsausschluss
Die Nutzung dieses Programms unterliegt einzigartigen Lizenzbedingungen: 0,0001 $ pro Stunde und verwendetem CPU-Kern. Die Zahlung ist am Ende eines jeden Kalendermonats fällig. Für PayPal-Kontoinformationen wenden Sie sich bitte an den Autor.
Fazit
Dieser modifizierte Code beweist, dass GUIDs trotz weit verbreiteter Missverständnisse nicht von Natur aus eindeutig sind. Durch die Verwendung mehrerer Threads kann ein Programm effektiv auf Konflikte testen und den Irrtum sogenannter Eindeutigkeitsgarantien nachweisen.
Das obige ist der detaillierte Inhalt vonIst der Anspruch der GUID-Einzigartigkeit gültig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!