J'ai une exigence qui devrait affecter une variable de compteur pour chaque thread qui est invoqué. Mais je n'obtiens pas les résultats attendus, en fait le compteur est en train de dupliquer dans les threads. J'ai créé une table fictive et un proc pour insérer la valeur du compteur dans la table. Est-il de toute façon que le code peut être modifié de sorte que le thread obtient une valeur incrémentée.Reg: Variable de compteur dans thread
Dans le code ci-dessous, la counter
variable est un static int
public synchronized int testSequence(){
System.out.println("testSequence::::: "+counter++);
//Random rn = new Random();
CallableStatement cstmt;
{
try {
cstmt = conn.prepareCall("{call insertjtest(?)}");
cstmt.setInt(1,counter);
//cstmt.setInt(1, rn.nextInt());
cstmt.execute();
cstmt.close();
conn.commit();
return counter;
} catch (SQLException e) {
// TODO Auto-generated catch block
return 0;
}
}
}
Mais je trouve le
la question n'est pas complète et nous pouvons fournir une meilleure réponse si nous pouvons voir toute la classe. – nanda