记一次生成唯一ID的问题
生活随笔
收集整理的這篇文章主要介紹了
记一次生成唯一ID的问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? ? ? 之前一直用new Date().getTime()作為ID一直沒出現啥問題,但是在測試環境被測試人員發現問題了,最終定位到是一個循環體中多次循環所取到的ID竟然是一樣的!也就是說系統在1ms之內做了好幾次sql操作!好吧,萬萬沒想到。。也只能怪自己代碼不嚴謹吧。
? ? ? ? 我的臨時改動是這樣,定義一個臨時變量i,原有時間戳不變,給其最后加上一位也就是i,i在每次操作之后進行++,從而保證一次執行不可能出現重復的;但是這種解決方法雖然能解決手頭上的問題,但是在極端情況比如多個用戶進行這樣的操作時也有可能取到相同的ID,因此我覺得可以在時間戳和變量i之間在加上機器mac地址(或者其他具有機器唯一性的東西),從而確保全局唯一性;其實方便一點可以使用JAVA自帶的UUID,不過我看了一下位數太長感覺沒必要,有更好的辦法后面再說吧~
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的记一次生成唯一ID的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【深度学习】使用 Pytorch 进行多
- 下一篇: 深度学习 “四大名著” 发布!完整 PD