Ich habe über Parallelität, Multithreading und wie "das kostenlose Mittagessen vorbei ist" gelesen . Aber ich hatte noch nicht die Möglichkeit, MT in meinem Job einzusetzen.
Ich bin daher auf der Suche nach Vorschlägen, wie ich durch Übungen oder die Teilnahme an Open-Source-Projekten etwas Übung in CPU-schwerem MT bekommen kann.
Vielen Dank.
Bearbeiten: Ich interessiere mich mehr für Open-Source-Projekte, die MT für CPU-gebundene Aufgaben verwenden, oder einfach für Algorithmen, deren Implementierung mit MT interessant ist, anstatt für Bücher oder Artikel, in denen nur die Tools wie Threads, Mutexe und Sperren beschrieben werden wie MT verwendet werden kann, um ansprechende GUIs zu haben ...
learning
multithreading
Xavier Nodet
quelle
quelle
Antworten:
Joseph Albaharis Artikel über Threading in C # ist eine der besten Ressourcen, die ich je gesehen habe.
Das Inhaltsverzeichnis ist unten. Beachten Sie, dass einige der Themen, wie z. B. die Task Parallel Library, spezifisch für .NET sind, ein Großteil davon jedoch für andere Sprachen, insbesondere für Java, gilt.
Sie können sich auch Jon Skeets Tutorial hier ansehen: http://www.yoda.arachsys.com/csharp/threads/
quelle
Java Concurrency in Practice ist eines der besten Bücher zum Thema Multithreading und Concurrency. Obwohl alle Beispiele in diesem Buch auf Java basieren, bietet dieses Buch eine solide Erklärung der MT-Welt. Es hat mir sehr geholfen, als ich ein MT-System entwickelte.
quelle
Kapitel 11 des Buches Intel Threading Building Blocks von James Reinders widmet sich Beispielen für Algorithmen und Projekte, die Parallel Computing (oder Parallel Programming) verwenden: einen Teilstringsucher, das Game of Life, ein Sieb aus Eratosthenes, Matrix Multiply und dann andere weiterführende Themen wie Netzwerkpaketfilterung und Spiele.
quelle
Ich fand Concurrent Programming unter Windows von Joe Duffy sehr hilfreich. Es gibt viel Tiefe. Es werden keine Schläge ausgeführt, sodass Sie wirklich ein gutes Gefühl dafür bekommen, wie viele Möglichkeiten es gibt, sich in den Fuß zu schießen. Es hat mir geholfen, vorsichtig zu sein. Dies ist der beste Rat, den ich jedem geben kann, der mit MT-Apps beginnt.
quelle
Es gibt einen Unterschied zwischen Parallelität und Parallelität. Nebenläufigkeit ist der Vorgang, bei dem mehr als eine Sache gleichzeitig ausgeführt wird, z. B. das Schreiben in zwei Dateien. Parallelität ist die Beschleunigung von Programmen durch die Verwendung mehrerer Kerne.
Obwohl es kein kostenloses Mittagessen gibt, wenn es um Parallelität geht, wird das Mittagessen mit Sicherheit immer freier, siehe Entwicklungen wie http://www.haskell.org/haskellwiki/GHC/Data_Parallel_Haskell
quelle
Diese Seite enthält einige gute Projektbeispiele im Allgemeinen. www.planet-source-code.com
Wählen Sie einfach eine Sprache und suchen Sie nach Multithreading. Sie sollten eine Reihe von Projekten mit verfügbarem Quellcode sehen.
quelle