Quelqu'un peut-il expliquer avec des exemples (de code) quelle est la différence entre l' impasse et le livelock
Situation dans laquelle deux (ou plus) opérations nécessitent des ensembles de ressources qui se chevauchent et aucune ne peut se terminer car elles ne peuvent pas obtenir tous les verrous nécessaires pour terminer une opération et libérer leurs verrous.
Quelqu'un peut-il expliquer avec des exemples (de code) quelle est la différence entre l' impasse et le livelock
J'ai une table innoDB qui enregistre les utilisateurs en ligne. Il est mis à jour à chaque actualisation de page par un utilisateur pour garder une trace des pages sur lesquelles il se trouve et de sa dernière date d'accès au site. J'ai ensuite un cron qui s'exécute toutes les 15 minutes pour...
Je ne comprends pas très bien la différence entre Task.Waitet await. J'ai quelque chose de similaire aux fonctions suivantes dans un service ASP.NET WebAPI: public class TestController : ApiController { public static async Task<string> Foo() { await Task.Delay(1).ConfigureAwait(false); return...
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 ne...
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 les quatre tests suivants et le dernier se bloque lorsque je l'exécute. Pourquoi cela arrive-t-il: [Test] public void CheckOnceResultTest() { Assert.IsTrue(CheckStatus().Result); } [Test] public async void CheckOnceAwaitTest() { Assert.IsTrue(await CheckStatus()); } [Test] public async void...
Le code suivant entraînera-t-il un blocage à l'aide de C # sur .NET? class MyClass { private object lockObj = new object(); public void Foo() { lock(lockObj) { Bar(); } } public void Bar() { lock(lockObj) { // Do something } } }
J'ai un processus avec un Select qui prend beaucoup de temps à se terminer, de l'ordre de 5 à 10 minutes. Je n'utilise actuellement pas NOLOCK comme indice pour le moteur de base de données MS SQL. En même temps, nous avons un autre processus effectuant des mises à jour et des insertions dans la...
Je suis tombé sur quelques bonnes pratiques pour la programmation asynchrone en utilisant les mots async- awaitclés / c # (je suis nouveau sur c # 5.0). L'un des conseils donnés était le suivant: Stabilité: connaissez vos contextes de synchronisation ... Certains contextes de synchronisation sont...
Je voudrais expliquer les blocages de threading aux débutants. J'ai vu de nombreux exemples de blocages dans le passé, certains utilisant du code et d'autres utilisant des illustrations (comme les célèbres 4 voitures ). Il existe également des problèmes classiques facilement bloqués comme The...
À partir d'une application .NET 3.5 / C #, je voudrais attraper, SqlExceptionmais uniquement si cela est causé par des blocages sur une instance SQL Server 2008. Le message d'erreur typique est Transaction (Process ID 58) was deadlocked on lock resources with another process and has been chosen as...
Fermé . Cette question doit être plus ciblée . Il n'accepte pas les réponses actuellement. Vous souhaitez améliorer cette question? Mettez à jour la question afin qu'elle se concentre sur un problème uniquement en modifiant ce message . Fermé il y a 5 ans . Améliorez cette question J'ai récemment...
Je suis tombé sur une situation étrange où l'utilisation d'un flux parallèle avec un lambda dans un initialiseur statique prend apparemment une éternité sans utilisation du processeur. Voici le code: class Deadlock { static { IntStream.range(0, 10000).parallel().map(i -> i).count();...