Vote des utilisateurs
0
0
Détails
Licence : Non renseignée
Mise en ligne le 10 mars 2011
Langue : Français
Référencé dans
Navigation
Thread : Priority Inversion Safe Binary Semaphore
Thread : Priority Inversion Safe Binary Semaphore
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émaphore
sem.give();
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émaphore
sem.give();
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.