multithreading - Was sind einige gute Ressourcen zum Erlernen der Thread-Programmierung?

Translate

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

This question and all comments follow the "Attribution Required."

Alle Antworten

Translate

Schauen Sie sich Herb Sutters "Das kostenlose Mittagessen ist vorbei"und dann seine Artikelserie überEffektive Parallelität.

Quelle
dmo
Translate

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

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

Quelle
Sid Lee
Translate

Ich habe es ehrlich gesagt nie selbst gelesen, aberGleichzeitige Programmierung in Javaist ein Buch, das ich von mehreren Leuten empfohlen gehört habe.

Quelle
Translate

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

Quelle
Translate

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

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

Die Homepage des Autors enthält aListe der ArtikelEr hat geschrieben, von denen einige Threading-bezogene Dinge beinhalten. Vielleicht fangen Sie dort an und wenn Sie seinen Stil mögen, kaufen Sie das Buch.

Quelle
Translate

Für eine gute Anleitung und Referenz für die Parallelitätsprogrammierung in C # (oder .NET im Allgemeinen) würde ich den MSDN empfehlenWas jeder Entwickler über Multithread-Apps wissen mussArtikel von Vance Morrison über MSDN. Es enthält viele Best-Practice-Informationen und Vorbehalte zur Multithread-Entwicklung

Quelle
Translate

Ich pflege ein 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.).

Quelle
Translate

Es ist Delphi-spezifisch, aber kein Grund, warum das Konzept für keine andere Sprache gelten würde!

Multi-Threading-Tutorial

Quelle
Translate

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

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

Quelle
Translate

Die Erlang-Programmiersprache bietet einen benutzerfreundlichen Stil für die gleichzeitige Programmierung. Möglicherweise verwenden Sie Erlang nie, aber die Konzepte können in andere Sprachen übertragen werden. Vielleicht möchten Sie das Buch lesenProgrammierung Erlang: Software für eine gleichzeitige Welt .

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

Quelle
Translate

Ich weiß nicht genau, wonach Sie suchen, aber wenn Sie WindowsForms entwickeln, ist der folgende Blog-Beitrag jede Minute lesenswert:WinForms UI Thread Invokes: Eine eingehende Überprüfung von Invoke / BeginInvoke / InvokeRequred

Quelle
Translate

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

Quelle
Translate

Wenn Sie versuchen möchten, eine hochparallele Version einer einfachen Aufgabe zu erstellen oder echte Lösungen zu finden, können Sie es schlechter machen, als sich die anzuschauenbreiter FinderProjekt. Im Grunde geht es darum, wie man den parallelen Regex-Abgleich von Protokolldateien effizient durchführt, aber versucht, so wenig Code wie möglich hinzuzufügen.

Die Teilnehmer haben Lösungen in vielen verschiedenen Sprachen eingereichtLeistungsergebnissesind gebucht. Das ursprüngliche Projekt ist nun abgeschlossen und es gibt es jetztBreitensucher 2die Arbeit übernehmen.

CodingHorrorhat eine guteEinführung in den Breitensucher.

Quelle
Translate

Für eine reichhaltige und gründliche Behandlung des Themas mit einer guten Balance zwischen Informatik und Praxis empfehle ichDie Kunst der Multiprozessor-Programmierung. Viele Beispiele sind objektorientierter Code, dh 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 beschreibt, wie gängige Algorithmen in einem gleichzeitigen Design implementiert werden sollten. Natürlich gibt es noch so viel mehr!

Für allgemeine Konzepte und eine Behandlung von Pthreads mag ich wirklichProgrammieren mit POSIX-Threads. Da es sich um die Bibliothek und API handelt, befindet es sich in C.

Überprüfen Sie für Windows- und C # -EntwicklerJoe Duffys Blog. Joe arbeitet an parallelen Bibliotheken, Infrastrukturen und Programmiermodellen in der Microsoft Developer Division. Er hat ein Buch mit dem Titel im November 2008Gleichzeitige Programmierung unter Windows (Amazon Link).

Verpassen Sie auch nicht den Blog des Paten: Herb Sutter'sSutters Mühle. Er hat Links zu all seinen Artikeln in Dr. Dobbs Journal und mehr. Klicken Sie auf seineParallelitätskategorie.

Quelle
Translate

Die Websites der CPU-Hersteller enthalten einige interessante Inhalte:

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

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

Auch Intels OpenSource-Threading-Bibliothek enthält einige gute Referenzen:

http://www.threadingbuildingblocks.org/

Quelle
Gill Lee
Translate

Wenn Sie mit C # arbeiten, ist das Buch "C # 2008 und 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 eine nette Anleitung mit viel Code zum Üben. Es erzählt Geschichten und erklärt die schwierigsten Konzepte.

Quelle