Séquence Générateur en Java pour les Id Unique

Je prévois d'écrire un générateur de séquence qui sera utilisé
dans mon REPOS des ressources de mise en œuvre de la classe pendant le post pour générer
id unique. Depuis chaque requête post est gérée par un thread séparé,
J'ai fait la variable volatile et méthode synchronisée.
Je n'ai pas d'option pour utiliser des séquences ou quelque chose qui
traditionnelle SGBD fournit.

public class SequenceGen {
    volatile static int n = 0;  
    public synchronized int nextNum(){
        return n++;
    }   
}

c'est ce que j'ai à ce jour, et de la planification pour créer une variable de
SequenceGen dans mon REPOS de mise en Œuvre. Ma question est la volonté de
il casse quelque part ? J'ai testé avec les deux fils et je ne vois pas
toute valeur répétée.

faire nextNum méthode static pour le rendre sûr.
Si vos premiers essais montrent qu'il fonctionne et que votre logique dit, il doit travailler, en règle générale, vous ne devriez pas vous inquiéter à ce sujet plus et accepter que cela fonctionne (pour l'instant). S'inquiéter quand il fait pose un problème.
Pourquoi ne pas simplement utiliser un AtomicInteger?
Plus d'une jvm impliqués dans le processus? Dans votre POC, je suppose que vous utilisez une seule jvm.
Le champ doit être privé. volatile est redondante, puisque vous avez accès à l'aide d'une méthode synchronisée. Mais je suis d'accord avec fge: un AtomicInteger est un meilleur, plus sûr, plus rapide solution. Si vous prévoyez d'avoir plusieurs machines virtuelles, vous devez envisager d'utiliser un UUID à la place (mais vous aurez une Chaîne de caractères et non un int)

OriginalL'auteur Ayan | 2014-03-14