J'ai utilisé les blocs synchronized
de Java pour sécuriser certaines parties de mon thread de code. Je porte une structure de données à Java qui peut habituellement utiliser des blocs synchronized
, mais je ne sais pas toujours comment les utiliser de manière Java typique.Comment verrouiller sous Java?
Voici un exemple d'un scénario:
myMethod (Bool useLock)
{
if (useLock)
{
//locks the following section of code until unlocked.
lockObject.lock();
}
//do more stuff....
if (useLock)
{
//unlocks exclusive control of code.
lockObject.unlock();
}
}
Comment puis-je faire un équivalent de ce en Java? Dans ce code, parfois je veux verrouiller et parfois je ne veux pas, mais je veux être intelligent à ce sujet et ne pas avoir à écrire deux versions du même code. Existe-t-il d'autres façons de verrouiller Java que d'utiliser des blocs synchronized
?
Il a déjà spécifié un objet à verrouiller: 'lockObject'. Et 'Bool' n'est pas une classe Java standard. – m0skit0
J'ai fini par utiliser votre solution synchronisée. J'ai regardé dans ReentrantLock, alors merci! Mais ils ne semblent pas être mutuellement exclusifs aux blocs synchronisés. – Jon