Frage

Mit dem Aufkommen von Multicore-CPUs auf dem Desktop werden Multithreading-Kenntnisse für Programmierer zu einem wertvollen Vorteil.Können Sie einem Programmierer, der etwas über Thread-Programmierung lernen möchte, einige gute Ressourcen (Bücher, Tutorials, Websites usw.) empfehlen?

War es hilfreich?

Lösung

Werfen Sie einen Blick auf Herb Sutters „Das kostenlose Mittagessen ist vorbei" und dann seine Artikelserie über Effektive Parallelität.

Andere Tipps

Joseph Albahari hat hier einen guten Überblick über Threading in C# geschrieben:

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

Ehrlich gesagt habe ich es selbst noch nie gelesen, aber Gleichzeitige Programmierung in Java ist ein Buch, das mir von mehreren Leuten empfohlen wurde.

Ich schreibe über Multithreading und Parallelität in C++ mein Blog.Ich schreibe auch ein Buch über Parallelität in C++: C++-Parallelität in Aktion.

Ich habe (die meisten) gelesen Java-Parallelität in der Praxis von Brian Goetz, was sehr gut ist.

Es gibt offensichtlich ein Java-basiertes Thema, das sich durch das Buch zieht (unter Verwendung Java-spezifischer Implementierungen von Threads, Sperren usw.), aber so gut wie alle Prinzipien können auf andere Sprachen angewendet werden.

Die Homepage des Autors enthält a Liste der Artikel Er hat geschrieben, einige davon beinhalten Threading-bezogene Dinge.Vielleicht fangen Sie dort an und wenn Ihnen sein Stil gefällt, kaufen Sie das Buch.

Für eine großartige Anleitung und Referenz für die Parallelitätsprogrammierung in C# (oder .NET im Allgemeinen) würde ich MSDN empfehlen Was jeder Entwickler über Multithread-Apps wissen muss Artikel von Vance Morrison auf MSDN.Es enthält zahlreiche Best-Practice-Informationen und Vorbehalte zur Multithread-Entwicklung

Ich betreibe einen Linkblog für Parallelitätsartikel, Blogs und Projekte unter:

http://concurrency.tumblr.com

Normalerweise poste ich ein oder zwei Links pro Tag zu verschiedenen Themen (Threads, Akteure, Sperren, parallele Programmierung) in verschiedenen Umgebungen (Erlang, Java, Scala, .NET, C++, Ruby, Python usw.).

Es ist Delphi-spezifisch, aber es gibt keinen Grund, warum das Konzept nicht auch auf andere Sprachen anwendbar wäre!

Multi-Threading-Tutorial

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

Das ist ein schöner allgemeiner Überblick über die Situation. Wenn Sie nach Tutorials und Büchern suchen, ist es möglicherweise am besten, eine Sprache als Ausgangspunkt anzugeben, damit Sie mit etwas Code herumspielen können.

Die Programmiersprache Erlang bietet einen benutzerfreundlichen Stil der gleichzeitigen Programmierung.Möglicherweise verwenden Sie Erlang nie wirklich, aber die Konzepte sind auf andere Sprachen übertragbar.Vielleicht möchten Sie das Buch lesen Programmieren in Erlang:Software für eine gleichzeitige Welt .

Fans der funktionalen Programmierung behaupten, dass es nicht nötig sei, etwas Neues zu lernen.Verwenden Sie einfach eine reine Funktionssprache und der Compiler oder Interpreter parallelisiert automatisch alles.Vielleicht möchten Sie Haskell, OCaml oder eine andere funktionale Sprache lernen.

Ich weiß nicht genau, wonach Sie suchen, aber wenn Sie WindowsForms entwickeln, lohnt es sich, den folgenden Blogbeitrag jede Minute zu lesen:WinForms-UI-Thread-Aufrufe:Eine ausführliche Überprüfung von Invoke/BeginInvoke/InvokeRequred

Ich denke, Boost.Threads ist eine großartige C++-Parallelitätsbibliothek zum Erlernen, insbesondere wenn Sie einfach mit dem Schreiben von Multithread-Anwendungen beginnen möchten.Der Code ist sehr prägnant und leicht zu verstehen, außerdem wird der nächste C++-Standard wahrscheinlich eine Threading-Bibliothek auf Basis von Boost.Threads enthalten (Tutorial: http://www.ddj.com/cpp/184401518)

Wenn Sie versuchen möchten, eine hochparallele Version einer einfachen Aufgabe auszuführen oder echte Lösungen sehen möchten, könnten Sie Schlimmeres tun, als sich das anzusehen breiter Sucher Projekt.Im Grunde geht es darum, wie man den parallelen Regex-Abgleich von Protokolldateien effizient durchführt, dabei aber versucht, so wenig Code wie möglich hinzuzufügen.

Die Teilnehmer haben Lösungen in vielen verschiedenen Sprachen eingereicht Leistungsergebnisse werden gepostet.Das ursprüngliche Projekt ist nun abgeschlossen und steht nun zur Verfügung Weitwinkelsucher 2 die Arbeit übernehmen.

CodingHorror hat ein gutes Einführung in den Wide Finder.

Für eine reichhaltige, gründliche Behandlung des Themas, mit einer guten Balance zwischen Informatik und Praxis, empfehle ich Die Kunst der Multiprozessorprogrammierung.Viele Beispiele liegen im objektorientierten Code vor, d. h.Java, mit anderen Sprachen, die überall verstreut sind.Es kommt nur auf das behandelte Thema an.Was ich an diesem Buch wirklich liebe, ist, dass es erläutert, wie gängige Algorithmen in einem gleichzeitigen Design implementiert werden sollten.Natürlich gibt es noch viel mehr!

Allgemeine Konzepte und eine Behandlung von Pthreads gefallen mir sehr gut Programmieren mit POSIX-Threads.Da es sich um die Bibliothek und API handelt, ist es in C.

Weitere Informationen für Windows- und C#-Entwickler finden Sie hier Joe Duffys Blog.Joe arbeitet in der Entwicklerabteilung von Microsoft an parallelen Bibliotheken, Infrastruktur und Programmiermodellen.Im November kommt ein Buch von ihm.2008 mit dem Titel Gleichzeitige Programmierung unter Windows (Amazon-Link).

Verpassen Sie auch nicht den Blog des Paten:Herb Sutters Sutters Mühle.Er hat Links zu all seinen Artikeln in Dr.Dobbs Tagebuch und mehr.Klicken Sie auf sein Parallelitätskategorie.

Die Websites von CPU-Herstellern bieten einige interessante Inhalte:

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

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

Auch die Open-Source-Threading-Bibliothek von Intel verfügt über einige gute Referenzen:

http://www.threadingbuildingblocks.org/

Wenn Sie mit C# arbeiten, lesen Sie das Buch „C# 2008 and 2005 Threaded Programming“ von Gaston C.Hillar - Packt Publishing - http://www.packtpub.com/beginners-guide-for-C-sharp-2008-and-2005-threaded-programming/book , wird dir helfen.Sehr empfehlenswert für C#-Programmierer, da Sie den Code mit lustigen Beispielen herunterladen können, die Ihren Multicore-Computer ausnutzen.Das Buch ist ein schöner Leitfaden mit viel Code zum Üben.Es erzählt Geschichten und erklärt gleichzeitig die schwierigsten Konzepte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top