Articles of blocage

Envelopper un calcul asynchrone dans un calcul synchrone (bloquant)

questions similaires: Motif pour encapsuler une fonction JavaScript asynchrone afin de la rendre synchrone Envelopper une méthode asynchrone de manière synchrone en C # J’ai un object avec une méthode que je voudrais exposer aux clients de la bibliothèque (en particulier les clients de script) comme quelque chose comme: interface MyNiceInterface { public Baz doSomethingAndBlock(Foo […]

Pourquoi le locking sur le même object ne provoque-t-il pas un blocage?

Duplication possible: Verrouillage du rentrant en C # Si j’écris du code comme celui-ci: class Program { static void Main(ssortingng[] args) { Foo(); Console.ReadLine(); } static void Foo() { lock(_lock) { Console.WriteLine(“Foo”); Bar(); } } static void Bar() { lock(_lock) { Console.WriteLine(“Bar”); } } private static readonly object _lock = new object(); } Je reçois […]

Quelle est la différence entre synchronized on lockObject et son utilisation comme verrou?

Je connais la différence entre la méthode synchronisée et le bloc synchronisé, mais je ne suis pas sûr de la partie de bloc synchronisée. En supposant que j’ai ce code class Test { private int x=0; private Object lockObject = new Object(); public void incBlock() { synchronized(lockObject) { x++; } System.out.println(“x=”+x); } public void incThis() […]

Détection d’impasse en Java

Il y a longtemps, j’ai sauvegardé une phrase d’un livre de référence Java: “Java n’a aucun mécanisme pour gérer les interblocages. Elle ne saura même pas qu’il y a eu un blocage.” (Head First Java 2e édition, p.516) Alors, qu’en est-il? Y a-t-il un moyen d’attraper un cas d’impasse en Java? Je veux dire, y […]

Quelle est la différence entre: les architectures asynchrones, non bloquantes et les bases d’événements?

Quelle est la différence entre: Asynchrone , Non bloquant , et Architectures de base d’événement ? Quelque chose peut-il être à la fois asynchrone et non bloquant (et basé sur des événements )? Qu’est-ce qui est le plus important en programmation, d’avoir quelque chose: asynchrone, non bloquant et / ou base d’événement (ou tous les […]

Simple Deadlock Exemples

Je voudrais expliquer les impasses des threads aux débutants. J’ai vu beaucoup d’exemples de blocages dans le passé, certains utilisant du code et d’autres utilisant des illustrations (comme les fameuses 4 voitures ). Il y a aussi des problèmes classiques facilement bloqués comme The Dining Philosophers , mais ceux-ci peuvent être trop complexes pour un […]

Les E / S non bloquantes sont-elles vraiment plus rapides que les E / S bloquantes multi-thread? Comment?

J’ai cherché sur le Web des détails techniques sur le blocage des E / S et des E / S non bloquantes et j’ai constaté que plusieurs personnes estimaient que les E / S non bloquantes seraient plus rapides que le blocage des E / S. Par exemple dans ce document . Si j’utilise des […]

attendre des travaux mais appelant task.Result se bloque / deadlocks

J’ai les quatre tests suivants et le dernier se bloque quand je le lance, ma question est la suivante: [Test] public void CheckOnceResultTest() { Assert.IsTrue(CheckStatus().Result); } [Test] public async void CheckOnceAwaitTest() { Assert.IsTrue(await CheckStatus()); } [Test] public async void CheckStatusTwiceAwaitTest() { Assert.IsTrue(await CheckStatus()); Assert.IsTrue(await CheckStatus()); } [Test] public async void CheckStatusTwiceResultTest() { Assert.IsTrue(CheckStatus().Result); // This […]

Verrouillage du rentrant en C #

Le code suivant provoquera-t-il un blocage en utilisant C # sur .NET? class MyClass { private object lockObj = new object(); public void Foo() { lock(lockObj) { Bar(); } } public void Bar() { lock(lockObj) { // Do something } } }

Quelle est l’efficacité du locking d’un mutex déverrouillé? Quel est le coût d’un mutex?

Dans un langage de bas niveau (C, C ++ ou autre): j’ai le choix entre un tas de mutex (comme ce que pthread me donne ou ce que la bibliothèque de système native fournit) ou un seul pour un object. Est-ce efficace de verrouiller un mutex? C’est-à-dire combien de fois les instructions d’assemblage sont-elles probables […]