Articles of concurrence

Comment puis-je implémenter la hiérarchisation des tâches à l’aide d’un ExecutorService dans Java 5?

Je suis en train de mettre en place un mécanisme de pool de threads dans lequel je voudrais exécuter des tâches de différentes priorités. Je voudrais avoir un bon mécanisme par lequel je peux soumettre une tâche hautement prioritaire au service et le faire programmer avant d’autres tâches. La priorité de la tâche est une […]

Programmation concurrente c ++?

Je continue à entendre parler de programmation simultanée partout. Pouvez-vous jeter un peu de lumière sur ce que c’est et comment les nouvelles normes c ++ facilitent la même chose?

Comment fonctionnent les goroutines? (ou: relation goroutines et threads OS)

Comment d’autres goroutines peuvent-elles continuer à s’exécuter en invoquant un appel système? (en utilisant GOMAXPROCS = 1) Autant que je sache, en appelant un appel syscall, le thread abandonne le contrôle jusqu’à ce que syscall retourne. Comment peut-on atteindre cette concurrence sans créer un thread système par goroutine bloquant sur syscall? De la documentation : […]

Utilisation de ThreadFactory en Java

Quelqu’un peut-il expliquer brièvement comment et quand utiliser ThreadFactory? Un exemple avec et sans ThreadFactory peut être très utile pour comprendre les différences. Merci!

pourquoi ai-je besoin de std :: condition_variable?

J’ai trouvé que std::condition_variable est très difficile à utiliser en raison de réveils intempestifs. Donc, parfois, je dois définir des indicateurs tels que: atomic is_ready; Je is_ready à true avant d’appeler notify ( notify_one() ou notify_all() ), puis j’attends: some_condition_variable.wait(some_unique_lock, [&is_ready]{ return bool(is_ready); }); Y a-t-il une raison pour laquelle je ne devrais pas faire […]

Comprendre std :: hardware_destructive_interference_size et std :: hardware_constructive_interference_size

C ++ 17 a ajouté std::hardware_destructive_interference_size et std::hardware_constructive_interference_size . Tout d’abord, j’ai pensé que c’était simplement un moyen portable d’obtenir la taille d’une ligne de cache L1, mais c’est une simplification excessive. Des questions: Comment ces constantes sont-elles liées à la taille de la ligne de cache L1? Existe-t-il un bon exemple qui illustre leurs […]

Pourquoi plus de code Java n’utilise-t-il pas PipedInputStream / PipedOutputStream?

J’ai découvert cet idiome récemment et je me demande s’il me manque quelque chose. Je n’ai jamais vu ça utilisé. Presque tout le code Java avec lequel j’ai travaillé dans la nature favorise les données dans une chaîne ou un tampon, plutôt que quelque chose comme cet exemple (en utilisant les API HttpClient et XML […]

Existe-t-il des conteneurs simultanés dans C ++ 11?

En particulier, je recherche une queue bloquante. Y a-t-il une telle chose en C ++ 11? Si non, quelles sont mes autres options? Je ne veux vraiment plus descendre au niveau du thread. Beaucoup trop enclin aux erreurs.

Comment implémenter un thread simple avec un nombre fixe de threads de travail

Je cherche le moyen le plus simple et le plus simple d’implémenter les éléments suivants: Le programme principal instancie des threads de travail pour effectuer une tâche. Seules n tâches peuvent être exécutées à la fois. Lorsque n est atteint, plus de travailleurs sont démarrés jusqu’à ce que le nombre de threads en cours d’exécution […]

Y a-t-il un intérêt à utiliser un volatil long?

J’utilise occasionnellement une variable d’instance volatile lorsque j’ai deux threads en train de lire / d’écrire dessus et que je ne veux pas que la surcharge (ou le risque de blocage potentiel) prenne un verrou; Par exemple, un thread de temporisation met à jour périodiquement un identifiant int qui est affiché en tant que getter […]