Articles of multithreading

Écran de démarrage multi-thread en C #?

Je veux un écran de démarrage à afficher pendant le chargement de l’application. J’ai un formulaire avec un contrôle de la barre d’état système qui lui est lié. Je souhaite que l’écran de démarrage s’affiche pendant le chargement de ce formulaire, ce qui prend un peu de temps puisqu’il accède à une API de service […]

Un serveur Web asynchrone à thread unique, non bloquant (comme Node.js) est-il possible dans .NET?

J’étais en train de regarder cette question , à la recherche d’un moyen de créer un serveur Web asynchrone non bloquant, basé sur les événements, mono-thread dans .NET. Cette réponse semblait prometteuse au début, en affirmant que le corps du code s’exécutait dans un seul thread. Cependant, j’ai testé ceci en C #: using System; […]

En C # serait-il préférable d’utiliser Queue.Synchronized ou lock () pour la sécurité des threads?

J’ai un object de queue dont je dois m’assurer qu’il est compatible avec les threads. Serait-il préférable d’utiliser un object de locking comme celui-ci: lock(myLockObject) { //do stuff with the queue } Ou est-il recommandé d’utiliser Queue.Synchronisé comme ceci: Queue.Synchronized(myQueue).whatever_i_want_to_do(); En lisant les documents MSDN, il est dit que je devrais utiliser Queue.Synchronized pour le […]

Haskell léger threads overhead et utilisation sur multicores

J’ai lu le livre “Real World Haskell”, le chapitre sur la concurrence et le parallélisme. Ma question est la suivante: Étant donné que les threads Haskell ne sont en réalité que des threads “virtuels” multiples au sein d’un “vrai” thread OS, cela signifie-t-il que la création de nombreux threads (comme 1000) n’aura pas un impact […]

SpinWait vs Sleep en attente. Lequel utiliser?

Est-ce efficace de SpinWait.SpinUntil(() => myPredicate(), 10000) pour une temporisation de 10000ms ou Est-il plus efficace d’utiliser Thread.Sleep polling pour la même condition Par exemple, quelque chose dans le SleepWait fonction SleepWait suivante: public bool SleepWait(int timeOut) { Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); while (!myPredicate() && stopwatch.ElapsedMilliseconds < timeOut) { Thread.Sleep(50) } return myPredicate() […]

Pourquoi est-ce que je vois plusieurs messages «Le thread 0x22c8 est sorti avec le code 259 (0x103)».

Je reçois un grand nombre de ces messages dans mon application Winforms, même si je n’ai jamais explicitement créé de threads. Pourquoi cela arrive-t-il? J’ai cherché des explications, mais il est difficile de trouver une enquête comme celle-ci. J’utilise Visual Studios 2013 et c’est la sortie de débogage qui me préoccupe: The thread 0x23a4 has […]

Comment vérifier le thread actuel dans Swift 3?

Comment puis-je vérifier lequel est le thread actuel dans Swift 3? Dans les versions précédentes de Swift, il était possible de vérifier si le thread actuel était le principal en procédant comme suit: NSThread.isMainThread()

C #: attente de la fin des threads

Je suis en train de trouver un modèle commun dans le code que j’écris, dans lequel je dois attendre que tous les threads d’un groupe soient terminés, avec un délai d’attente. Le délai d’expiration est censé être le temps requirejs pour que tous les threads se terminent, donc le thread.Join (timeout) pour chaque thread ne […]

Code pour un pool de threads simple en C #

Vous recherchez un exemple de code (C #) pour une implémentation de pool de threads simple. J’en ai trouvé un sur codeproject, mais la base de code était juste énorme et je n’ai pas besoin de toutes ces fonctionnalités. C’est plus à des fins éducatives de toute façon.

Liste Java synchronisée

J’ai une liste de tableaux pré-remplis. Et j’ai plusieurs threads qui vont supprimer des éléments de la liste de tableaux. Chaque thread appelle la méthode remove ci-dessous et supprime un élément de la liste. Le code suivant me donne-t-il un comportement cohérent? ArrayList list = Collections.synchronizedList(new ArrayList()); void remove(Ssortingng item) { do something; (doesn’t work […]