Bonjour,

Une petite question j'ai essayé d'implémenter un singleton avec la classe ThreadLocal malheureusement ça ne fonctionne pas correctement: plusieurs instances sont créées quand je lance une multitude de threads

Où est l'erreur. Merci pour vos lumières:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public final class BeansPool {
  private static ThreadLocal<BeansPool> _singleton = new ThreadLocal<BeansPool>();
 
  /**
   * @return
   * @throws Exception 
   */
  public final static BeansPool getInstance() throws Exception {
      BeansPool pool = _singleton.get();
 
        if (pool == null) {
            System.out.println("New !!!");
            pool = new BeansPool();
            _singleton.set(pool);
        }
 
        return pool;
  }
}
A+