Как вы будете практиковать параллелизм и многопоточность? [закрыто]

Я читал о параллелизме, многопоточности и о том, как «бесплатный обед закончился» . Но у меня еще не было возможности использовать MT в своей работе.

Таким образом, я ищу предложения о том, что я могу сделать, чтобы получить некоторую практику процессора MT с помощью упражнений или участия в некоторых проектах с открытым исходным кодом.

Спасибо.

Изменить: меня больше интересуют проекты с открытым исходным кодом, которые используют MT для задач, связанных с процессором, или просто алгоритмы, которые интересны для реализации с использованием MT, а не книги или документы, которые описывают только такие инструменты, как потоки, мьютексы и блокировки или как MT может использоваться, чтобы иметь гибкие графические интерфейсы ...

30 голосов | спросил Xavier Nodet 31 FriEurope/Moscow2010-12-31T02:24:30+03:00Europe/Moscow12bEurope/MoscowFri, 31 Dec 2010 02:24:30 +0300 2010, 02:24:30

6 ответов


8

Глава 11 книги Блоки Intel Threading Building Blocks Джеймса Рейндерса посвящены примерам алгоритмов и проектов, которые использовать параллельные вычисления (или параллельное программирование): подстрочный искатель, Game of Life, сито Eratosthenes, Matrix Multiply, а затем другие более сложные темы, такие как фильтрация сетевых пакетов и игры.

ответил Xavier Nodet 3 Jpm1000000pmMon, 03 Jan 2011 19:17:45 +030011 2011, 19:17:45
15

Статья Джозефа Альбахари о Threading in C # - один из лучших ресурсов, которые я видел.

Ниже приведено содержание. Обратите внимание, что некоторые из тем, таких как параллельная библиотека задач, специфичны для .NET, но большая часть их применима к другим языкам, особенно к Java.

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

Вы также можете посмотреть учебник Джона Скита: http://www.yoda.arachsys.com/CSharp /нитей /

ответил Robert Harvey 31 FriEurope/Moscow2010-12-31T03:23:09+03:00Europe/Moscow12bEurope/MoscowFri, 31 Dec 2010 03:23:09 +0300 2010, 03:23:09
12

Java Concurrency in Practice - одна из лучших книг по многопоточности и параллелизму. Хотя все примеры в книге основаны на Java, эта книга дает надежное объяснение мира МТ. Это помогло мне, когда я разрабатывал систему M-T.

ответил Sorantis 31 FriEurope/Moscow2010-12-31T04:03:52+03:00Europe/Moscow12bEurope/MoscowFri, 31 Dec 2010 04:03:52 +0300 2010, 04:03:52
4

Я нашел параллельное программирование в Windows Джо Даффи, чтобы быть очень полезным. Там много глубины. Он не тянет никаких ударов, поэтому вы действительно хорошо разбираетесь в том, как много способов стрелять в ногу. Это помогло мне быть осторожным, и это лучший совет, который я могу дать всем, кто начнет работу с приложениями MT.

ответил Scott Whitlock 31 FriEurope/Moscow2010-12-31T07:03:20+03:00Europe/Moscow12bEurope/MoscowFri, 31 Dec 2010 07:03:20 +0300 2010, 07:03:20
2

Есть разница между параллелизмом и параллелизмом. Параллелизм - это действие, выполняемое несколькими делами одновременно, например, запись в 2 файла. Параллелизм - это процесс ускорения программ с использованием нескольких ядер.

Несмотря на отсутствие бесплатного обеда, когда дело доходит до параллелизма, в параллелизме обед, безусловно, становится более бесплатным, см. такие события, как http://www.haskell.org/haskellwiki/GHC/Data_Parallel_Haskell

ответил dan_waterworth 31 FriEurope/Moscow2010-12-31T13:31:40+03:00Europe/Moscow12bEurope/MoscowFri, 31 Dec 2010 13:31:40 +0300 2010, 13:31:40
1

На этом сайте есть хорошие примеры проектов. www.planet-source-code.com

Просто выберите язык и найдите многопоточность. вы должны увидеть ряд проектов с исходным кодом.

ответил Pemdas 31 FriEurope/Moscow2010-12-31T03:17:10+03:00Europe/Moscow12bEurope/MoscowFri, 31 Dec 2010 03:17:10 +0300 2010, 03:17:10

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132