Supposons qu'une classe possède un public int counterchamp accessible par plusieurs threads. Ceci intest seulement incrémenté ou décrémenté. Pour incrémenter ce champ, quelle approche utiliser et pourquoi? lock(this.locker) this.counter++;, Interlocked.Increment(ref this.counter);, Remplacez le modificateur d'accès counterpar public volatile. Maintenant que j'ai découvert volatile, j'ai supprimé de nombreuses lockdéclarations et l'utilisation …
Je comprends les différences entre le verrouillage optimiste et pessimiste. Maintenant, quelqu'un pourrait-il m'expliquer quand j'utiliserais l'un ou l'autre en général? Et la réponse à cette question change-t-elle selon que j'utilise ou non une procédure stockée pour effectuer la requête? Mais juste pour vérifier, optimiste signifie "ne verrouille pas la …
Je vois que pour utiliser des objets qui ne sont pas sûrs pour les threads, nous enveloppons le code avec un verrou comme ceci: private static readonly Object obj = new Object(); lock (obj) { // thread unsafe code } Que se passe-t-il donc lorsque plusieurs threads accèdent au même …
La documentation MSDN indique que public class SomeObject { public void SomeOperation() { lock(this) { //Access instance variables } } } est "un problème si l'instance est accessible publiquement". Je me demande pourquoi? Est-ce parce que le verrou sera maintenu plus longtemps que nécessaire? Ou y a-t-il une raison plus …
Voir diverses questions liées au verrouillage et (presque) toujours trouver la `` boucle à cause de termes de réveils parasites '' 1 Je me demande, quelqu'un a-t-il connu un tel type de réveil (en supposant un environnement matériel / logiciel décent par exemple)? Je sais que le terme «faux» ne …
Je suppose que la vraie question est: Si je ne me soucie pas des lectures incorrectes , l'ajout de l' indicateur with (NOLOCK) à une instruction SELECT affectera les performances de: l'instruction SELECT en cours autres transactions par rapport au tableau donné Exemple: Select * from aTable with (NOLOCK)
Si j'ai 2 méthodes synchronisées dans la même classe, mais chacune accédant à des variables différentes, est-ce que 2 threads peuvent accéder à ces 2 méthodes en même temps? Le verrou se produit-il sur l'objet ou est-il aussi spécifique que les variables à l'intérieur de la méthode synchronisée? Exemple: class …
POSIX permet aux mutex d'être récursifs. Cela signifie que le même thread peut verrouiller le même mutex deux fois et ne sera pas bloqué. Bien sûr, il doit également le déverrouiller deux fois, sinon aucun autre thread ne peut obtenir le mutex. Tous les systèmes prenant en charge les pthreads …
Quelqu'un peut-il expliquer la différence entre: verrouiller (un objet) {} Utiliser Mutex Utilisation du sémaphore Utilisation du moniteur Utilisation d'autres classes de synchronisation .Net Je n'arrive tout simplement pas à comprendre. Il me semble que les deux premiers sont les mêmes?
Lors de l'écriture d'applications multithreads, l'un des problèmes les plus courants rencontrés est les blocages. Mes questions à la communauté sont: Qu'est-ce qu'une impasse? Comment les détectez-vous? Les gérez-vous? Et enfin, comment les empêcher de se produire?
J'ai la classe suivante. class Test{ public HashSet<string> Data = new HashSet<string>(); } J'ai besoin de changer le champ "Données" de différents threads, donc j'aimerais avoir des opinions sur mon implémentation thread-safe actuelle. class Test{ public HashSet<string> Data = new HashSet<string>(); public void Add(string Val){ lock(Data) Data.Add(Val); } public void …
Dans un langage de bas niveau (C, C ++ ou autre): j'ai le choix entre avoir un tas de mutex (comme ce que pthread me donne ou tout ce que la bibliothèque système native fournit) ou un seul pour un objet. Quelle est l'efficacité de verrouiller un mutex? C'est-à-dire combien …
C ++ 17 a introduit une nouvelle classe de verrouillage appelée std::scoped_lock. À en juger par la documentation, il ressemble à la std::lock_guardclasse déjà existante . Quelle est la différence et quand dois-je l'utiliser?
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.