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

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

5.08.2008 15:42:09
17 ОТВЕТОВ
РЕШЕНИЕ

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

18
5.08.2008 16:02:41

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

6
5.08.2008 15:47:15

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

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

1
5.08.2008 15:48:57

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

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

1
13.08.2008 16:53:20

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

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

10
18.08.2008 21:51:01
Это отличный учебник по этому вопросу.
spoulson 26.09.2008 12:42:34

Я прочитал (большую часть) Java Concurrency in Practice Брайана Гетца, что очень хорошо.

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

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

2
21.08.2008 11:39:20

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

2
21.08.2008 12:06:05

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

1
21.08.2008 12:11:11

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

1
21.08.2008 20:46:58

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

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

CodingHorror имеет хорошее введение в широкий поиск .

1
27.08.2008 12:12:34
5
27.08.2008 12:20:34

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

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

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

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

1
10.09.2008 04:07:35

Я веду linkblog для статей о параллелизме, блогов и проектов по адресу:

http://concurrency.tumblr.com

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

2
22.09.2008 02:22:31

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

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

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

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

http://www.threadingbuildingblocks.org/

1
26.09.2008 12:21:04

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

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

2
1.10.2008 16:48:31

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

4
9.10.2008 12:56:05

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

0
5.02.2009 02:40:11
У меня серьезные сомнения относительно рекомендаций этой книги. Подробности смотрите в моем полном обзоре: msmvps.com/blogs/jon_skeet/archive/2009/03/16/…
Jon Skeet 9.11.2009 23:48:59