3 книги о Java и concurrency и плюс еще одна

Многопоточное программирование в Java в частности и в программировании вообще является обширной и сложной темой. В связи с изменениями в процессоростроении, произошедшими уже упочти 15 лет назад многопоточное программирование выходит в скиллах программиста low-latency систем на первый план. Для самостоятельного вдумчивого освоения этой темы требуется уйма времени и хороший учебный материал.

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

Java Concurrency in Practice

0321349601-01-mzzzzzzz Классика жанра. Настольная книга. Основы работы с потоками даются в начале книги для освежения памяти, а дальше в книге освящаются проблемы, которые могут возникнуть у опрометчивого программиста, который посчитал, что он с многопоточным програмированием уже разобрался.

 

The Art of Multiprocessor Programming

0123973376-01-mzzzzzzz Книга написана выдающимися учеными и лекторами и несмотря на свой академизм в первой части, дает множество практических знаний во второй части. Чтение первой части нужно для теоретического минимума тем, кто не изучал параллельные системы в университете и разбирается с этой темой самостоятельно. Без чтения первой части было бы трудно понимать смысл и объяснения второй.

Programming Concurrency on the JVM

193435676x-01-mzzzzzzzОказывается многопоточные программы можно создавать не только классом Thread и интерфейсом Runnable. Есть и другие модели многопоточного прогамирования, реализованные в других языках. Ознакомиться с ними будт интересно, чтобы расширить свои горизонты и понимать, что для решения одной и той же задачи есть разные подходы.

 

В заключение

Реалиация потоков в Java не всегда была такой красивой и гладкой. До версии Java 1.4 реализация очень сильно хромала, заставляя Java-программистов выворачиваться наизнанку, чтобы в многопоточной программе избежать ошибок и неожиданных багов. Ни за что не соглашайтесь писать многопоточный код Java 1.4 (и еще: не соглашайтесь писать вообще никакой код на Java 1.4, не читайте книг по Java версии 1.4 и ниже и не прикасайтесь к приложениям, которые требуют Java 1.4 — если такие вообще еще остались).

0201310090-01-mzzzzzzzКнига Дага Ли поставила точку в этой дискуссии. Даг Ли показал в своей книге, где в Java сделаны ошибки, и как их нужно исправить. Для начала Даг Ли реализовал свои решения в сторонней concurrency-библитеке, а потом его реализация вошла в состав Java 5, от которой мы ведем отсчет хорошей полноценной непротиворечивой Java Memory Model и всех утилит и классов, которыми пользуемся сейчас.

Книга написана аж в 1999 году. Почитайте ее хотя бы ради интереса.

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s