Czytałem o współbieżności, wielowątkowości i o tym, jak „minął bezpłatny lunch” . Ale nie miałem jeszcze możliwości korzystania z MT w mojej pracy.
W związku z tym szukam sugestii na temat tego, co mogę zrobić, aby poćwiczyć procesor ciężki MT poprzez ćwiczenia lub udział w niektórych projektach typu open source.
Dzięki.
Edycja: Bardziej interesują mnie projekty typu open source, które używają MT do zadań związanych z procesorem, lub po prostu algorytmy, które są interesujące do wdrożenia przy użyciu MT, a nie książki lub dokumenty opisujące tylko takie narzędzia, jak wątki, muteksy i blokady, lub w jaki sposób można wykorzystać MT, aby mieć responsywne GUI ...
learning
multithreading
Xavier Nodet
źródło
źródło
Odpowiedzi:
Artykuł Josepha Albahari na temat wątków w C # jest jednym z najlepszych zasobów, jakie widziałem.
Spis treści znajduje się poniżej. Należy pamiętać, że niektóre tematy, takie jak Biblioteka zadań równoległych, są specyficzne dla platformy .NET, ale wiele z nich dotyczy innych języków, zwłaszcza Java.
Możesz również obejrzeć samouczek Jona Skeeta tutaj: http://www.yoda.arachsys.com/csharp/threads/
źródło
Java Concurrency in Practice to jedna z najlepszych książek o wielowątkowości i współbieżności. Chociaż wszystkie przykłady w tej książce są oparte na Javie, książka ta daje solidne wyjaśnienie świata MT. Bardzo mi pomogło, gdy tworzyłem system MT.
źródło
Rozdział 11 książki Intel Threading Building Blocks autorstwa Jamesa Reindersa poświęcony jest przykładom algorytmów i projektów wykorzystujących obliczenia równoległe (lub programowanie równoległe): wyszukiwarka substringów, gra w życie, sito Eratostenesa, mnożenie macierzy i następnie inne bardziej zaawansowane tematy, takie jak filtrowanie pakietów sieciowych i gry.
źródło
Uważam, że programowanie współbieżne w systemie Windows autorstwa Joe Duffy'ego jest bardzo pomocne. Jest dużo głębi. Nie naciska żadnych ciosów, więc naprawdę dobrze czujesz, ile jest sposobów, aby strzelić sobie w stopę. Pomogło mi to zachować ostrożność, co jest najlepszą radą, jaką mogę dać każdemu, kto zaczyna od aplikacji MT.
źródło
Istnieje różnica między współbieżnością a równoległością. Współbieżność polega na robieniu więcej niż jednej rzeczy naraz, na przykład pisaniu do 2 plików. Równoległość polega na przyspieszaniu programów za pomocą wielu rdzeni.
Chociaż nie ma darmowego lunchu, jeśli chodzi o współbieżność, równolegle lunch z pewnością staje się coraz bardziej darmowy, zobacz rozwój, taki jak http://www.haskell.org/haskellwiki/GHC/Data_Parallel_Haskell
źródło
Ta strona zawiera ogólnie kilka dobrych projektów. www.planet-source-code.com
Wystarczy wybrać język i wyszukać wielowątkowość. powinieneś zobaczyć wiele projektów z dostępnym kodem źródłowym.
źródło