С ростом многоядерных процессоров на рабочем столе, навыки многопоточности станут ценным преимуществом для программистов. Можете ли вы порекомендовать некоторые хорошие ресурсы (книги, учебники, веб-сайты и т.д.) Для программиста, который хочет узнать о программировании с резьбой?
Каковы некоторые хорошие ресурсы для обучения программированию на тему?
Ответ 1
Взгляните на Herb Sutter " The Free Lunch Is Over", а затем его серия статей на Эффективный Concurrency.
Ответ 2
Джозеф Альбахари написал хороший обзор Threading в С# здесь:
Ответ 3
Я честно никогда не читал его сам, но Параллельное программирование в Java - это книга, которую я слышал, рекомендованный несколькими людьми.
Ответ 4
Ответ 5
Я пишу о многопоточности и concurrency в С++ на в моем блоге. Я также пишу книгу на concurrency в С++: С++ concurrency в действии.
Ответ 6
Я прочитал (большинство) Java Concurrency на практике Брайана Гетца, что очень хорошо.
Очевидно, что существует Java-тема, проходящая через книгу (с использованием конкретных реализаций потоков, блокировок и т.д. Java), но в значительной степени все принципы могут применяться к другим языкам.
Домашняя страница автора содержит список статей, которые он написал, некоторые из которых включают связанные с потоками материалы. Возможно, начните там, и если вам понравится его стиль, купите книгу.
Ответ 7
Для отличного руководства и ссылки для программирования concurrency на С# (или вообще .NET) я бы рекомендовал MSDN Что должен знать каждый Dev О многопоточных приложениях статьи Вэнса Моррисона на MSDN. Он содержит много информации и предостережений о многопоточной разработке
Ответ 8
Я поддерживаю linkblog для статей, блогов и проектов concurrency по адресу:
Я обычно размещаю ссылку или два в день по различным темам (потоки, актеры, блокирование, параллельное программирование) в различных средах (Erlang, Java, Scala,.NET, С++, Ruby, Python, и т.д).
Ответ 9
Это Delphi конкретный, но без причины, почему концепция не будет применяться к любому другому языку!
Ответ 10
http://www.cilk.com/multicore-e-book/
Это хороший общий обзор сателлита, если вы ищете книги и книги, лучше всего указать язык в качестве отправной точки, чтобы вы могли общаться с каким-то кодом.
Ответ 11
Язык программирования Erlang обеспечивает простой в использовании стиль параллельного программирования. Вы, возможно, никогда не используете Erlang, но эти концепции переносятся на другие языки. Возможно, вам захочется прочитать книгу "Программирование Эрланг: программное обеспечение для параллельного мира".
Поклонники функционального программирования утверждают, что нет необходимости изучать что-либо новое. Просто используйте чистый функциональный язык, и компилятор или интерпретатор автоматически распараллеливают все. Поэтому вы можете изучить Haskell, OCaml или другой функциональный язык.
Ответ 12
Я не знаю, что именно вы ищете, но если вы разрабатываете WindowsForms, следующее сообщение в блоге стоит каждую минуту: WinForms UI Thread Invokes: In-Depth Review of Invoke/BeginInvoke/InvokeRequred
Ответ 13
Я думаю, Boost.Threads - отличная библиотека С++ concurrency, чтобы узнать, особенно если вы просто хотите начать писать многопоточные приложения. Код очень краткий и понятный, плюс следующий стандарт С++, скорее всего, включает в себя библиотеку потоков на основе Boost.Threads(учебник: http://www.ddj.com/cpp/184401518)
Ответ 14
Если вы хотите поработать над параллельной версией простой задачи или увидеть реальные решения, вы можете сделать хуже, чем посмотреть широкий поиск. В основном это о том, как эффективно выполнять параллельное сопоставление регулярных выражений журналов, но пытаюсь добавить как можно меньше кода.
Участники представили решения на разных языках и опубликованы результаты работы. Теперь исходный проект завершен, и теперь wide finder 2 работает.
CodingHorror имеет хорошее введение в широкий поиск.
Ответ 15
Для богатой, тщательной обработки предмета с хорошим балансом между информатикой и практикой я рекомендую "Искусство многопроцессорного программирования" , Много примеров в объектно-ориентированном коде, то есть в Java, с другими языками, разбросанными по всему миру. Это зависит только от охваченной темы. То, что мне действительно очень нравится в этой книге, заключается в том, что в ней обсуждается, как общие алгоритмы должны быть реализованы в параллельном дизайне. Конечно, там гораздо больше!
Для общих понятий и обработки pthreads мне очень нравится Программирование в потоках POSIX. Будучи библиотекой и API, что она есть, она находится на C.
Для разработчиков Windows и С# выберите блог Джо Даффи. Джо работает над параллельными библиотеками, инфраструктурой и моделями программирования в отделе разработчиков Microsoft. У него есть книга, пришедшая в ноябре 2008 года под названием Параллельное программирование в Windows (Ссылка Amazon).
Кроме того, не пропустите блог Godfather: Herb Sutter Sutter Mill. У него есть ссылки на все его статьи в журнале доктора Добба и многое другое. Нажмите его Concurrency category.
Ответ 16
На сайтах производителей процессоров есть интересный контент:
http://developer.amd.com/documentation/articles/Pages/default.aspx#parallel
http://software.intel.com/en-us/multi-core
Кроме того, в библиотеке потоков с открытым исходным кодом Intel есть несколько хороших ссылок:
Ответ 17
Если вы работаете с С#, книга "Программирование на языке С# 2008 и 2005", автор Gaston C. Hillar - Packt Publishing - http://www.packtpub.com/beginners-guide-for-C-sharp-2008-and-2005-threaded-programming/book, поможет вам. Очень рекомендуется для программистов на С#, потому что вы можете загрузить код с забавными примерами, которые используют ваш многоядерный компьютер. Книга - хороший путеводитель с большим количеством кода для практики. Он рассказывает истории, когда он объясняет самые сложные концепции.