Utilisez Set pour enregistrer l'ID du Thread qui a appelé cette méthode. Avant de saisir la méthode, déterminez d'abord si l'ID du thread actuel est déjà inclus dans le Set :
private final Set<Long> THREADS = new HashSet<>();
public void someMethod () {
if (THREADS.contains(Thread.currentThread().getId())) {
throw new RuntimeException("该线程不能再调用这个方法");
}
THREADS.add(Thread.currentThread().getId());
// 方法内容
}
Utilisez Set pour enregistrer l'ID du Thread qui a appelé cette méthode. Avant de saisir la méthode, déterminez d'abord si l'ID du thread actuel est déjà inclus dans le Set :
Thread.getCurrentThread.getId()
Personnaliser une classe Thread
Ajouter un membre booléen au Thread personnalisé pour jugement
Exemple
classe publique Main
{
public static void main(String[] args)
}
Exécuter les résultats
Méthode de test invoquée !
Autres
Vous pouvez également utiliser ThreadLocal pour le résoudre