Synchroniser des threads de priorites différentes.
Le mot cle synchronized utilise un sémaphore binaire qui n'empêche pas l'inversion de priorités, celui ci si, en utilisant le mécanisme d'héritage des priorités.
De plus sa file d'attente est prioritaire : le thread de plus haute priorité passe en premier.
Et pour l'utiliser, voici le parallele avec l'utilisation de synchronized :
// créer le sémaphore
Object o = new Object();
// prendre le sémaphore et attendre si necessaire
synchronized(o){
// rendre le sémaphore
}
// créer le sémaphore
PISBSem sem = new PISBSem();
// prendre le sémaphore et attendre si necessaire
sem.take();
// rendre le sémapho ...
Voir la suite