Maison  >  Questions et réponses  >  le corps du texte

java.util.UUID存在并发问题吗

如题所述,有根据最好了,或者说在highly mutilthread env环境下,加synchronized wrapper下吗,怎么才能比较好的降低并发产生,又不大范围(如果使用这个生成随机串的次数很多,比如一天百万级别的,对于生成随机串怎么降低或者说保证唯一)影响性能.

http://stackoverflow.com/questions/7212635/is-java-util-uuid-thread-safe
http://bugs.java.com/view_bug.do?bug_id=6611830

PHP中文网PHP中文网2711 Il y a quelques jours424

répondre à tous(2)je répondrai

  • 天蓬老师

    天蓬老师2017-04-18 09:28:25

    1. Ce lien BUG indique également que le correctif dans JDK1.7 a été supprimé. Donc UUID actuellement, il semble qu'il n'y ait aucun problème de concurrence dans les versions JDK1.7 et supérieures

    2. .
    3. En fait, l'UUID est un moyen très gourmand en performances pour obtenir une clé unique. Dans un environnement distribué, il est recommandé d'utiliser directement l'IP locale et l'AtomicLong auto-incrémenté (vous pouvez bien sûr ajouter un). nombre aléatoire) pour terminer l'ensemble du processus. Génération de clé unique distribuée

    4. .

    répondre
    0
  • 迷茫

    迷茫2017-04-18 09:28:25

    Merci pour l'invitation.
    Par exemple, lorsque les numéros de commande sont générés dans le commerce électronique, les numéros de commande pour un certain jour sont généralement pré-générés (quantité estimée, par exemple, il y a eu 1 million de commandes hier, et 1 million + une certaine redondance sera générée aujourd'hui), et placés dans des caches tels que memcache ou redis , peuvent également être placés dans MQ en tant que pool de numéros de commande. Si vous souhaitez l'utiliser, consommez simplement celui du pool de numéros de commande, qui est absolument unique.
    Comment le générer dépend de votre logique métier. Généralement, si vous ne souhaitez aucune duplication, vous pouvez générer une séquence de 0 à 100 W, puis la mélanger.

    répondre
    0
  • Annulerrépondre