Question

Avec l’essor des processeurs multicœurs sur les ordinateurs de bureau, les compétences en multithreading deviendront un atout précieux pour les programmeurs.Pouvez-vous recommander de bonnes ressources (livres, tutoriels, sites Web, etc.) à un programmeur qui cherche à en savoir plus sur la programmation threadée ?

Était-ce utile?

La solution

Jetez un oeil à " de Herb SutterLe déjeuner gratuit est terminé" puis sa série d'articles sur Concurrence efficace.

Autres conseils

Joseph Albahari a écrit un bon aperçu du Threading en C# ici :

http://www.albahari.com/threading/

Honnêtement, je ne l'ai jamais lu moi-même, mais Programmation simultanée en Java est un livre que plusieurs personnes m'ont recommandé.

J'écris sur le multithreading et la concurrence en C++ sur mon blog.J'écris également un livre sur la concurrence en C++ : La concurrence C++ en action.

J'ai lu (la plupart) La concurrence Java en pratique de Brian Goetz, qui est très bien.

Il existe évidemment un thème basé sur Java dans le livre (utilisant des implémentations spécifiques à Java de threads, de verrous, etc.), mais à peu près tous les principes peuvent être appliqués à d'autres langages.

La page d'accueil de l'auteur contient un liste des articles il a écrit, dont certains incluent des éléments liés au threading.Commencez peut-être par là et si vous aimez son style, achetez le livre.

Pour un excellent guide et référence pour la programmation simultanée en C# (ou .NET en général), je recommanderais le MSDN Ce que chaque développeur doit savoir sur les applications multithread article de Vance Morrison sur MSDN.Il contient de nombreuses informations sur les meilleures pratiques et des mises en garde concernant le développement multithread.

Je maintiens un blog de liens pour les articles, blogs et projets simultanés sur :

http://concurrency.tumblr.com

Je publie généralement un ou deux liens par jour sur une variété de sujets (threads, acteurs, verrouillage, programmation parallèle) dans divers environnements (Erlang, Java, Scala, .NET, C++, Ruby, Python, etc.).

C'est spécifique à Delphi, mais il n'y a aucune raison pour que le concept ne s'applique à aucun autre langage !

Tutoriel multithread

http://www.cilk.com/multicore-e-book/

C'est un bon aperçu général de la situation. Si vous recherchez des didacticiels et des livres, il serait peut-être préférable de spécifier une langue comme point de départ afin de pouvoir jouer avec du code.

Le langage de programmation Erlang offre un style de programmation simultanée facile à utiliser.Vous n’utiliserez peut-être jamais Erlang, mais les concepts sont transposables dans d’autres langues.Vous voudrez peut-être lire le livre Programmation Erlang :Logiciel pour un monde concurrent .

Les fans de programmation fonctionnelle affirment qu’il n’est pas nécessaire d’apprendre quoi que ce soit de nouveau.Utilisez simplement un langage fonctionnel pur et le compilateur ou l’interpréteur parallélisera automatiquement tout.Vous souhaiterez peut-être apprendre Haskell, OCaml ou un autre langage fonctionnel.

Je ne sais pas exactement ce que vous recherchez, mais si vous développez WindowsForms, le billet de blog suivant vaut la peine d'être lu chaque minute :Invocations du fil de discussion de l'interface utilisateur WinForms :Un examen approfondi de Invoke/BeginInvoke/InvokeRequred

Je pense que Boost.Threads est une excellente bibliothèque de concurrence C++ à apprendre, surtout si vous souhaitez simplement vous lancer dans l'écriture d'applications multithread.Le code est très succinct et facile à comprendre, et le prochain standard C++ inclura probablement une bibliothèque de threads basée sur Boost.Threads (tutoriel : http://www.ddj.com/cpp/184401518)

Si vous voulez essayer de réaliser une version hautement parallèle d'une tâche simple, ou voir de vraies solutions, vous pourriez faire pire que de regarder le viseur large projet.Fondamentalement, il s'agit de savoir comment effectuer efficacement une correspondance regex parallèle des fichiers journaux, tout en essayant d'ajouter le moins de code possible.

Les participants ont soumis des solutions dans de nombreuses langues différentes et le résultats de performance sont affichés.Le projet initial est maintenant terminé et il y a maintenant viseur large 2 reprendre le travail.

CodageHorreur a un bon introduction au Wide Finder.

Pour un traitement riche et approfondi du sujet, avec un bon équilibre entre informatique et pratique, je recommande L'art de la programmation multiprocesseur.De nombreux exemples sont en code orienté objet, c'est-à-direJava, avec d'autres langages dispersés partout.Cela dépend simplement du sujet abordé.Ce que j'aime vraiment dans ce livre, c'est qu'il explique comment les algorithmes courants doivent être implémentés dans une conception concurrente.Bien sûr, il y a bien plus encore !

Pour des notions générales et un traitement des pthreads, j'aime beaucoup Programmation avec les threads POSIX.Étant la bibliothèque et l’API qu’elle est, elle est en C.

Pour les développeurs Windows et C#, consultez Le blog de Joe Duffy.Joe travaille sur des bibliothèques parallèles, des infrastructures et des modèles de programmation dans la division des développeurs de Microsoft.Il a un livre à paraître en novembre.2008 intitulé Programmation simultanée sous Windows (Lien Amazon).

Ne manquez pas non plus le blog du Parrain :Herb Sutter Moulin de Sutter.Il a des liens vers tous ses articles dans Dr.Le journal de Dobb et plus encore.Cliquez sur son Catégorie de concurrence.

Les sites Web des fabricants de processeurs ont du contenu intéressant :

http://developer.amd.com/documentation/articles/Pages/default.aspx#parallel

http://software.intel.com/en-us/multi-core

La bibliothèque de threads open source d'Intel contient également de bonnes références :

http://www.threadingbuildingblocks.org/

Si vous travaillez en C#, le livre "Programmation threadée C# 2008 et 2005", de Gaston C.Hillar - Éditions Packt - http://www.packtpub.com/beginners-guide-for-C-sharp-2008-and-2005-threaded-programming/book , va vous aider.Fortement recommandé pour les programmeurs C#, car vous pouvez télécharger le code avec des exemples amusants qui exploitent votre ordinateur multicœur.Le livre est un bon guide avec beaucoup de code à pratiquer.Il raconte des histoires tout en expliquant les concepts les plus difficiles.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top