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

StackOverflow https://stackoverflow.com/questions/2482

Вопрос

С появлением многоядерных процессоров на настольных компьютерах навыки многопоточности станут ценным активом для программистов.Можете ли вы порекомендовать какие-нибудь хорошие ресурсы (книги, учебные пособия, веб-сайты и т. д.) программисту, который хочет научиться многопоточному программированию?

Это было полезно?

Решение

Взгляните на книгу Херба Саттера.Бесплатный обед окончен", а затем его серия статей о Эффективный параллелизм.

Другие советы

Джозеф Альбахари написал хороший обзор Threading в C# здесь:

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

Честно говоря, сам никогда не читал, но Параллельное программирование на Java это книга, которую, как я слышал, рекомендовали несколько человек.

Я пишу о многопоточности и параллелизме в C++ на мой блог.Я также пишу книгу о параллелизме на C++: Параллелизм C++ в действии.

Я прочитал (большую часть) Java-параллелизм на практике Брайан Гетц, и это очень хорошо.

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

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

В качестве отличного руководства и справочника по параллельному программированию на C# (или .NET в целом) я бы порекомендовал MSDN. Что должен знать каждый разработчик о многопоточных приложениях статья Вэнса Моррисона на MSDN.Он содержит большое количество информации о передовом опыте и предостережениях относительно многопоточной разработки.

Я веду блог со статьями, блогами и проектами, посвященными параллелизму, по адресу:

http://concurrency.tumblr.com

Обычно я публикую одну-две ссылки в день на различные темы (потоки, актеры, блокировки, параллельное программирование) в различных средах (Erlang, Java, Scala, .NET, C++, Ruby, Python и т. д.).

Это специфично для Delphi, но нет причин, по которым эта концепция не применима к любому другому языку!

Учебное пособие по многопоточности

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

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

Язык программирования Erlang обеспечивает простой в использовании стиль параллельного программирования.Возможно, вы никогда не будете использовать Erlang, но его концепции можно перенести на другие языки.Возможно, вы захотите прочитать книгу Программирование на Эрланге:Программное обеспечение для параллельного мира .

Любители функционального программирования утверждают, что здесь нет необходимости изучать что-то новое.Просто используйте чистый функциональный язык, и компилятор или интерпретатор автоматически все распараллелит.Поэтому вы можете изучить Haskell, OCaml или другой функциональный язык.

Я не знаю, что именно вы ищете, но если вы занимаетесь разработкой WindowsForms, следующий пост в блоге стоит прочитать каждую минуту:Вызывает поток пользовательского интерфейса WinForms:Углубленный обзор Invoke/BeginInvoke/InvokeRequred

Я думаю, что Boost.Threads — отличная библиотека C++ для параллельного выполнения, особенно если вы просто хотите начать писать многопоточные приложения.Код очень краток и прост для понимания, плюс следующий стандарт C++, вероятно, будет включать библиотеку потоков, основанную на Boost.Threads (руководство: http://www.ddj.com/cpp/184401518)

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

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

КодированиеУжасы имеет хороший введение в широкий искатель.

Для насыщенного и тщательного изучения предмета с хорошим балансом между информатикой и практикой я рекомендую Искусство многопроцессорного программирования.Многие примеры приведены в объектно-ориентированном коде, т.е.Java, а также другие языки, разбросанные повсюду.Это зависит только от обсуждаемой темы.Что мне действительно нравится в этой книге, так это то, что в ней обсуждается, как общие алгоритмы следует реализовывать в параллельном проекте.Конечно, это гораздо больше!

Что касается общих концепций и обработки pthreads, мне очень нравится Программирование с использованием потоков POSIX.Будучи библиотекой и API, она написана на C.

Для разработчиков Windows и C# см. Блог Джо Даффи.Джо работает над параллельными библиотеками, инфраструктурой и моделями программирования в отделе разработчиков Microsoft.У него есть книга, которая выйдет в ноябре.2008 г. под названием Параллельное программирование в Windows (ссылка на амазон).

Также не пропустите блог Крестного отца:Херб Саттер Саттерс Милл.У него есть ссылки на все его статьи в Dr.Журнал Добба и многое другое.Нажмите на него Категория параллелизма.

На сайтах производителей процессоров есть интересный контент:

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

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

Также есть несколько хороших ссылок на библиотеку потоков Intel с открытым исходным кодом:

http://www.threadingbuildingblocks.org/

Если вы работаете с C#, книга Гастона С. «Поточное программирование на C# 2008 и 2005».Хиллар - Packt Publishing - http://www.packtpub.com/beginners-guide-for-C-sharp-2008-and-2005-threaded-programming/book , Вам поможет.Настоятельно рекомендуется программистам на C#, поскольку вы можете скачать код с забавными примерами использования вашего многоядерного компьютера.Книга представляет собой хорошее руководство с большим количеством кода для практики.Он рассказывает истории и объясняет самые сложные понятия.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top