Bonjour!
Je suis en train de me perdre dans la synchronisation du méthode appartenant à un gestionnaire de cache (type HIFO pour un peu frimer): quel objet mettre au verrou synchronized??? Le tutoriel de ®om ne m'aide pas plus que ça....J'ai un chargement trop long pour les objets pas trop gros comme 4ko env. ...
![]()
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 private boolean swap(int pKey, Object pValue) { final int key = pKey; final Object value = pValue; cacheDisk.put(key, new File(cacheDisk_dir + File.separator + "_cache"+hashCode()+key+'.'+cacheDisk_ext)); Thread t = new Thread(new Runnable() { public void run() { try { new ObjectOutputStream(new FileOutputStream((File)cacheDisk.get(key))).writeObject(value); } catch(IOException e) { e.printStackTrace(); Thread.currentThread().interrupt(); } }}, "T-cache-swap"); t.start(); synchronized (pValue) { // ça fait pas de différence avec "this"! ??? try { t.join(); System.out.println(pKey + " swapped"); } catch(InterruptedException e) { return false; } finally { return true; } } }
Partager