Bonjour,

Concernant l'atomicité en Java, d'après ce que j'ai lu, c'est une possibilité qui permet d'utiliser des variables sans que les threads ne puissent manipuler celles-ci en même temps.

Voici l'exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
@ThreadSafe
public class CountingFactorizer implements Servlet {
  private final AtomicLong count = new AtomicLong(0);
  public long getCount() { return count.get(); }
  public void service(ServletRequest req, ServletResponse resp) {
    BigInteger i = extractFromRequest(req);
    BigInteger[] factors = factor(i);
    count.incrementAndGet();
    encodeIntoResponse(resp, factors);
}
}
Ici c'est un code ThreadSafe et ma question est de savoir comment la classe AtomicLong permet de sécuriser l'accès à la variable par plusieurs threads ? Est-ce qu'elle aussi utilise des verrous ?

Merci d'avance pour vos explications.