Bukti ringkas bahawa GUID tidak benar-benar unik
Pengenalan
GUID sering dianggap unik, tetapi adakah ini boleh diteliti? Artikel ini akan menyelidiki butiran penjanaan GUID dan memberikan contoh kod yang mencabar keunikannya yang didakwa.
Pertimbangan metodologi
Kod yang berkaitan berulang dari 0 hingga 2128-1 dan menjana GUID untuk setiap lelaran. Walaupun program ini dijangka berjalan untuk masa yang lama, ia keluar awal luar biasa.
Penyelesaian
Untuk membetulkan masalah ini, kod mesti dijalankan serentak menggunakan berbilang benang. Ini ialah versi yang dipertingkatkan:
<code>for (long k = 0; k { // 使用bigHeapOGuids检查冲突 } } }</code>
Pendekatan ini menggunakan pemprosesan selari untuk terus menyemak konflik antara GUID yang baru dijana dan GUID yang telah disimpan dalam set cincang bigHeapOGuids.
Bincang
Dengan menjalankan program ini selama-lamanya, jelas sekali GUID itu tidak unik. Kod ini menafikan hujah keunikan dengan mengulangi julat nilai yang besar, tidak dapat tidak menjana pendua.
Penafian
Penggunaan program ini tertakluk pada syarat lesen unik: $0.0001 sejam bagi setiap teras CPU yang digunakan. Pembayaran perlu dibayar pada akhir setiap bulan kalendar. Sila hubungi pengarang untuk maklumat akaun PayPal.
Kesimpulan
Kod yang diubah suai ini membuktikan bahawa GUID sememangnya tidak unik, walaupun terdapat salah tanggapan biasa. Dengan menggunakan berbilang benang, program boleh menguji konflik dengan berkesan dan membuktikan kekeliruan apa yang dipanggil jaminan keunikan.
Atas ialah kandungan terperinci Adakah Tuntutan Keunikan GUID Sah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!