Particle1Particle2Particle3Particle4Particle5
HWdTech / Блог /

Читаем Г. Эндрюса "

Основы многопоточного

... программирования"

Один из фаворитов нашей IT-библиотеки HWdTech LLC: книга Грегори Р. Эндрюса "Основы многопоточного, параллельного и распределенного программирования".

October 25, 2021
#it_books #теория_компьютерных_наук #теория #программирование #обучение #книги #книги_для_программистов

Reading time: 2 min

И снова с вами наша книжная рубрика "IT-библиотека HWdTech LLC". Сегодня рассказываем об очень полезной, но редкой книге (в продаже мы ее так и не нашли), которая есть у нас на полке и которую мы горячо рекомендуем разработчикам. Итак, читаем...

Грегори Р. Эндрюс - Основы многопоточного, параллельного и распределенного программирования

О чем эта книга?

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

Сразу оговоримся: это не та литература, которую можно освоить “молниеносно” и отложить в стопку других “полезных прочитанных книг”. Эта книга для долгого, вдумчивого чтения и осознания процессов, которые управляют кодом - вам несомненно будет над чем подумать.

Особенная ценность состоит в том, что альтернатив этой книге вы попросту не найдете: никто, кроме Эндрюса, не объясняет как все это работает на таком низком уровне. Кроме того, немногие книги вообще описывают, как именно работает Логика Хоара - а здесь вы и это найдете. Также ценным будет обзор литературы по многопоточному программированию, практически - его история. 

Помимо теории, в книге рассмотрены вопросы синхронизации, идиомы, методы решения, классическая задача синхронизации и межпроцессного взаимодействия - “задача о спящем парикмахере”, идиома “производитель-потребитель”, бесконечный цикл loop, задача об обедающих философах (сформулирована в 1965 году Эдсгером Дейкстрой как экзаменационное упражнение для студентов - это тоже модельная задача, призванная объяснить проблему блокировок) и многое другое. 

andrews_pics1
andrews_pics2

Зачем читать ее сегодня?

В первую очередь, для понимания того, что происходит под капотом современных распределенных систем. Эта книга чрезвычайно полезна, в частности, в ней рассматривается оператор “await”, который был предложен Дейкстрой для решения задач многопоточного программирования, а сейчас используется во всех подобных системах. Во-вторых, это чтение необходимо тем, кто хочет понять, осознать преемственность идей от программирования 60-х годов к современности. 

Помимо вышеописанных причин, книгу Эндрюса стоит прочесть, если вы хотите лучше понять связь математики и программирования. Обычно математика воспринимается как предметная область, которую необходимо программно реализовать. Но на самом деле многие вещи, которыми пользуются программисты, вначале были разработаны в области математики, а позже перекочевали в прикладное программирование. Данная книга - один из источников, которые иллюстрируют этот процесс применительно к задаче многопоточного программирования.

Для кого эта книга?

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

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

Личные впечатления

QUOTE
“Книга оказалась очень интересной и полезной, потому что, во-первых, появился инструмент для более эффективного и грамотного написания кода. Некоторые приемы были использованы мной при разработке приложений, именно на практике. Во-вторых, большое впечатление произвело применение Логики Хоара. Cегодня я через Логику Хоара объясняю, как работают SOLID-принципы. Это одна из тех книг, которые лично на меня оказали наибольшее влияние, внесла большой вклад в мое понимание программирования. Она предназначена для вдумчивого чтения, не “на один раз”, но для осмысления того, как устроено многопоточное программирование, как это все работает. Актуальность она не теряет и не потеряет в ближайшие годы, более того - те вещи, которые разработаны для многопоточного программирования, сейчас используются в распределенных системах, там, где необходимо согласовывать данные. То есть, все эти приемы можно применять повседневно. И вы можете либо сами их “изобретать”, либо прочесть, понять как это работает, как функционируют конкретные алгоритмы и пользоваться этим.”
- Евгений Александрович Тюменцев, СЕО of Hello World! Technologies (HWdTech).

Читайте также

Наши статьи!

Подписка

Раз в месяц мы делаем рассылку с анонсом новых кейсов и статей, опубликованных на сайте.

* - обязательное поле

Гарантируем - никакого спама. Нажимая на кнопку, вы даете согласие на обработку персональных данных и соглашаетесь c политикой в отношении обработки персональных данных.