Maison >développement back-end >C++ >La revendication d'unicité du GUID est-elle valable ?
Brève preuve que les GUID ne sont pas absolument uniques
Présentation
Les GUID sont souvent considérés comme uniques, mais est-ce que cela résiste à un examen minutieux ? Cet article approfondira les détails de la génération de GUID et fournira un exemple de code qui remet en question son prétendu caractère unique.
Considérations méthodologiques
Le code concerné itère de 0 à 2128-1 et génère un GUID pour chaque itération. Même si le programme devait durer longtemps, il s'est arrêté inhabituellement tôt.
Solution
Pour corriger ce problème, le code doit s'exécuter simultanément en utilisant plusieurs threads. Ceci est une version améliorée :
<code>for (long k = 0; k { // 使用bigHeapOGuids检查冲突 } } }</code>
Cette approche utilise un traitement parallèle pour vérifier en permanence les conflits entre les GUID nouvellement générés et les GUID déjà stockés dans le jeu de hachage bigHeapOGuids.
Discuter
En exécutant ce programme indéfiniment, il est évident que le GUID n'est pas unique. Ce code réfute l'argument de l'unicité en itérant sur une vaste plage de valeurs, générant inévitablement des doublons.
Avis de non-responsabilité
L'utilisation de ce programme est soumise à des conditions de licence uniques : 0,0001 $ par heure et par cœur de processeur utilisé. Le paiement est dû à la fin de chaque mois civil. Veuillez contacter l'auteur pour obtenir des informations sur le compte PayPal.
Conclusion
Ce code modifié prouve que les GUID ne sont pas intrinsèquement uniques, malgré une idée fausse courante. En utilisant plusieurs threads, un programme peut tester efficacement les conflits et prouver l'erreur des soi-disant garanties d'unicité.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!