Le multithread est la capacité d'un ordinateur ou d'un programme à effectuer un travail simultanément ou de manière asynchrone en utilisant plusieurs flux d'exécution simultanés (généralement appelés threads).
Supposons que je démarre un std::threadet puis detach()il, donc le thread continue à s'exécuter même si celui std::threadqui l'a représenté une fois, sort de la portée. Supposons en outre que le programme ne dispose pas d'un protocole fiable pour joindre le thread détaché 1 , de sorte que le thread …
En général, for int num, num++(ou ++num), en tant qu'opération de lecture-modification-écriture, n'est pas atomique . Mais je vois souvent des compilateurs, par exemple GCC , générer le code suivant ( essayez ici ): Puisque la ligne 5, qui correspond à num++une instruction, peut-on conclure que num++ c'est atomique dans …
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 …
AsyncTask est une bonne chose pour exécuter des tâches complexes dans un autre thread. Mais lorsqu'il y a un changement d'orientation ou un autre changement de configuration alors que le AsyncTaskest toujours en cours d'exécution, le courant Activityest détruit et redémarré. Et comme l'instance de AsyncTaskest connectée à cette activité, …
Existe-t-il une commande équivalente dans GDB à celle du "! Process 0 7" de WinDbg? Je veux extraire tous les threads dans un fichier de vidage avec leurs backtraces dans GDB. "info threads" ne produit pas les traces de la pile. Alors, y a-t-il une commande qui le fait?
Outre les différences évidentes: À utiliser enumerateObjectsUsingBlocklorsque vous avez besoin à la fois de l'index et de l'objet Ne pas utiliser enumerateObjectsUsingBlocklorsque vous devez modifier des variables locales (je me suis trompé à ce sujet, voir la réponse de bbum) Est-ce enumerateObjectsUsingBlockgénéralement considéré comme meilleur ou pire quand for (id …
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 …
Comment obtenir un compteur thread-safe en C # avec les meilleures performances possibles? C'est aussi simple que cela: public static long GetNextValue() { long result; lock (LOCK) { result = COUNTER++; } return result; } Mais existe-t-il des alternatives plus rapides?
Je me demandais si vous aviez une méthode statique qui n'est pas synchronisée, mais qui ne modifie aucune variable statique, est-elle thread-safe? Et si la méthode crée des variables locales à l'intérieur? Par exemple, le code suivant est-il thread-safe? public static String[] makeStringArray( String a, String b ){ return new …
J'ai une méthode qui renvoie un Listdes futurs List<Future<O>> futures = getFutures(); Maintenant, je veux attendre que tous les futurs soient traités avec succès ou que l'une des tâches dont la sortie est retournée par un futur lève une exception. Même si une tâche lève une exception, il ne sert …
J'espère que quelqu'un pourra m'éclairer sur la cause de cette erreur: Tentative de lecture ou d'écriture de la mémoire protégée. Cela indique souvent qu'une autre mémoire est corrompue. Je ne peux pas vraiment publier de code car cette erreur semble être lancée dans une zone aléatoire de l'application. L'application s'exécutera …
Erg, j'essaie de trouver ces deux méthodes dans le BCL en utilisant Reflector, mais je ne peux pas les localiser. Quelle est la différence entre ces deux extraits? UNE: IEnumerable<string> items = ... Parallel.ForEach(items, item => { ... }); B: IEnumerable<string> items = ... foreach (var item in items.AsParallel()) { …
Tout le monde met en garde contre le fait que Java DateFormat n'est pas thread-safe et je comprends le concept en théorie. Mais je ne suis pas en mesure de visualiser les problèmes réels auxquels nous pouvons faire face à cause de cela. Dites, j'ai un champ DateFormat dans une …
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.