it-swarm-eu.dev

Wie würden Sie Parallelität und Multithreading üben?

Ich habe über Parallelität, Multithreading und wie "das kostenlose Mittagessen ist vorbei" gelesen. Aber ich hatte noch nicht die Möglichkeit, MT in meinem Job zu verwenden.

Ich suche daher nach Vorschlägen, was ich tun könnte, um durch Übungen oder die Teilnahme an einigen Open-Source-Projekten etwas CPU-schwer zu üben MT].

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 Papiere, die nur das beschreiben Tools wie Threads, Mutexe und Sperren oder wie MT kann verwendet werden, um reaktionsfähige GUIs zu haben ...

33
Xavier Nodet

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: ein Teilstring-Finder, das Spiel des Lebens, ein Sieb aus Eratosthenes, Matrix Multiply und andere fortgeschrittenere Themen wie Netzwerkpaketfilterung und Spiele.

8
Xavier Nodet

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 die Task Parallel Library, spezifisch für .NET sind, ein Großteil jedoch auch für andere Sprachen, insbesondere Java, gilt.

GETTING STARTED
Introduction and Concepts
Join and Sleep
How Threading Works
Threads vs Processes
Threading’s Uses and Misuses
Creating and Starting Threads
Passing Data to a Thread
Naming Threads
Foreground vs Background
Thread Priority
Exception Handling
Thread Pooling
Thread Pooling via TPL
Thread Pooling Without TPL
Optimizing the Thread Pool
BASIC SYNCHRONIZATION
+ Synchronization Essentials
+ Locking
+ Thread Safety
+ Event Wait Handles
+ Synchronization Contexts
USING THREADS
+ Event-Based Asynch Pattern
+ BackgroundWorker
+ Interrupt and Abort
+ Safe Cancellation
+ Lazy Initialization
+ Thread-Local Storage
+ Timers
ADVANCED THREADING
+ Nonblocking Synchronization
+ Signaling with Wait and Pulse
+ The Barrier Class
+ Reader/Writer Locks
+ Suspend and Resume
+ Aborting Threads
PARALLEL PROGRAMMING
+ Parallel Programming
+ Why PFX?
+ PLINQ
+ The Parallel Class
+ Task Parallelism
+ Working with AggregateException
+ Concurrent Collections
+ SpinLock and SpinWait

Sie können sich auch Jon Skeets Tutorial hier ansehen: http://www.yoda.arachsys.com/csharp/threads/

15
Robert Harvey

Java Concurrency in Practice ist eines der besten Bücher über Multithreading und Parallelität. Obwohl alle Beispiele in diesem Buch auf Java) basieren, bietet dieses Buch eine solide Erklärung für MT Welt. Es hat mir sehr geholfen, als ich ein MT entwickelt habe System.

13
Sorantis

Ich fand Concurrent Programming unter Windows von Joe Duffy sehr hilfreich. Es gibt viel Tiefe. Es zieht keine Schläge, so dass 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.

4
Scott Whitlock

Es gibt einen Unterschied zwischen Parallelität und Parallelität. Parallelität ist der Vorgang, bei dem mehrere Aufgaben gleichzeitig ausgeführt werden, z. B. das Schreiben in zwei Dateien. Parallelität ist der Vorgang der Beschleunigung von Programmen durch Verwendung mehrerer Kerne.

Obwohl es kein kostenloses Mittagessen gibt, wenn es um Parallelität geht, wird das Mittagessen parallel dazu sicherlich freier, siehe Entwicklungen wie http://www.haskell.org/haskellwiki/GHC/Data_Parallel_Haskell

2
dan_waterworth

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.

1
Pemdas