Je lisais des articles sur la concurrence, le multi-threading et comment "le repas gratuit est terminé" . Mais je n'ai pas encore eu la possibilité d'utiliser MT dans mon travail.
Je suis donc à la recherche de suggestions sur ce que je pourrais faire pour acquérir une certaine pratique de la MT très chargée en CPU par le biais d’exercices ou par la participation à des projets à code source ouvert.
Merci.
Edit: je suis plus intéressé par les projets open source qui utilisent MT pour les tâches liées au processeur, ou simplement par les algorithmes qu'il est intéressant de mettre en œuvre à l'aide de MT, plutôt que par des livres ou des articles décrivant uniquement les outils tels que les threads, les mutex et les verrous. comment MT peut être utilisé pour avoir des interfaces graphiques réactives ...
la source
Réponses:
L'article de Joseph Albahari sur le filetage en C # est l'une des meilleures ressources que j'ai vue.
La table des matières est ci-dessous. Notez que certaines rubriques, telles que la bibliothèque de tâches parallèles, sont spécifiques à .NET, mais qu’elles s’appliquent en grande partie à d’autres langages, notamment Java.
Vous pouvez également consulter le didacticiel de Jon Skeet ici: http://www.yoda.arachsys.com/csharp/threads/
la source
Java Concurrency in Practice est l'un des meilleurs ouvrages sur le multi-threading et la simultanéité. Bien que tous les exemples de ce livre soient basés sur Java, ce livre fournit une explication solide du monde de la traduction automatique. Cela m'a beaucoup aidé lorsque je développais un système de traduction automatique.
la source
Le chapitre 11 du livre Intel Threading Building Blocks de James Reinders est consacré à des exemples d’algorithmes et de projets utilisant le calcul parallèle (ou programmation parallèle): un outil de recherche de sous-chaîne, le jeu de la vie, un tamis d’Ératosthène, Matrix Multiply et puis d'autres sujets plus avancés tels que le filtrage de paquets sur le réseau et les jeux.
la source
La programmation simultanée sur Windows de Joe Duffy m'a été très utile. Il y a beaucoup de profondeur. Cela ne donne pas de coups de poing, alors vous avez vraiment une idée précise de toutes les façons dont vous pouvez vous tirer une balle dans le pied. Cela m'a aidé à faire preuve de prudence, ce qui est le meilleur conseil que je puisse donner à quiconque commence avec les applications MT.
la source
Il y a une différence entre la concurrence et le parallélisme. La simultanéité est l'acte de faire plus d'une chose à la fois, comme écrire dans 2 fichiers. Le parallélisme consiste à accélérer les programmes en utilisant plusieurs cœurs.
Bien qu'il n'y ait pas de déjeuner gratuit en matière de concurrence, dans le parallélisme, le déjeuner devient certainement de plus en plus gratuit, voir les développements tels que http://www.haskell.org/haskellwiki/GHC/Data_Parallel_Haskell
la source
Ce site a quelques bons exemples de projets en général. www.planet-source-code.com
Il suffit de choisir une langue et de rechercher le multi-threading. vous devriez voir un certain nombre de projets avec le code source disponible.
la source