Articles of multithreading

Pool de threads C ++

Qu’est-ce qu’une bonne implémentation open source d’un pool de threads pour C ++ à utiliser dans le code de production (quelque chose comme boost)? Veuillez fournir soit votre propre code exemple, soit un lien vers l’exemple de code utilisé.

Quelle est la différence entre .Wait () et .GetAwaiter (). GetResult ()?

Ma méthode renvoie la Task . Je veux attendre la fin. Que dois-je utiliser .Wait() ou .GetAwaiter().GetResult() ? Quelle est la différence entre eux?

Ceci est Thread-Safe non?

_count simplement que _count est accessible en toute sécurité, non? Les deux méthodes sont accessibles par plusieurs threads. private int _count; public void CheckForWork() { if (_count >= MAXIMUM) return; Interlocked.Increment(ref _count); Task t = Task.Run(() => Work()); t.ContinueWith(CompletedWorkHandler); } public void CompletedWorkHandler(Task completedTask) { Interlocked.Decrement(ref _count); // Handle errors, etc… }

std :: thread – nommer votre thread

Le nouveau C ++ a ce type std :: thread. Fonctionne comme un charme. Maintenant, je voudrais donner un nom à chaque thread pour un débogage plus facile (comme java le permet). Avec pthreads je ferais: pthread_setname_np(pthread_self(), “thread_name”); mais comment puis-je faire cela avec c ++ 0x? Je sais qu’il utilise pthreads sous les systèmes […]

Contexte des données EF – Async / Await & Multithreading

J’utilise fréquemment async / waiting pour m’assurer que les threads d’API ASP.NET MVC Web ne sont pas bloqués par des opérations d’E / S et de réseau plus longues, en particulier des appels à la firebase database. L’espace de noms System.Data.Entity fournit diverses extensions d’assistance, telles que FirstOrDefaultAsync , ContainsAsync , CountAsync , etc. Toutefois, […]

Constructeur privé pour éviter les conditions de course

Je lis le livre Java Concurrency in Practice session 4.3.5 @ThreadSafe public class SafePoint{ @GuardedBy(“this”) private int x,y; private SafePoint (int [] a) { this (a[0], a[1]); } public SafePoint(SafePoint p) { this (p.get()); } public SafePoint(int x, int y){ this.x = x; this.y = y; } public synchronized int[] get(){ return new int[] {x,y}; […]

Quelles opérations sont atomiques en C #?

Existe-t-il un moyen systématique de savoir si une opération en C # sera atomique ou non? Ou existe-t-il des directives générales ou des règles générales?

Est-il sûr de lire une variable entière modifiée simultanément sans verrouiller?

Supposons que je possède une variable entière dans une classe et que cette variable peut être modifiée simultanément par d’autres threads. Les écritures sont protégées par un mutex. Dois-je aussi protéger les lectures? J’ai entendu dire qu’il existe des architectures matérielles sur lesquelles, si un thread modifie une variable et qu’un autre thread le lit, […]

Impossible de convertir une expression lambda pour taper ‘System.Delegate’

Aucun de ces travaux: _uiDispatcher.Invoke(() => { }); _uiDispatcher.Invoke(delegate() { }); Tout ce que je veux faire est Invoquer une méthode en ligne sur mon thread d’interface utilisateur principal. J’ai donc appelé cela sur le thread principal: _uiDispatcher = Dispatcher.CurrentDispatcher; Et maintenant, je veux exécuter du code sur ce thread à partir d’un autre thread. […]

pthread_cond_wait versus sémaphore

Quels sont les avantages / inconvénients de l’utilisation de pthread_cond_wait ou de l’utilisation d’un sémaphore? J’attends un changement d’état comme celui-ci: pthread_mutex_lock(&cam->video_lock); while(cam->status == WAIT_DISPLAY) { pthread_cond_wait(&cam->video_cond, &cam->video_lock); } pthread_mutex_unlock(&cam->video_lock); En utilisant un sémaphore correctement initialisé, je pense que je pourrais le faire comme ceci: while(cam->status == WAIT_DISPLAY) { sem_wait(&some_semaphore); } Quels sont les avantages […]