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; }
        }
    }