Многоядерное программирование: использование преимуществ многоядерных систем

ОГЛАВЛЕНИЕ

В этой статье я глубже опишу мир многопоточности, а также опишу некоторые способы снижения сложности при разработке многопоточных приложений.

J2EE

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

Использование J2EE для приложений предприятия позволяет разработчику писать приложение, не слишком много думая о потоках; в этом сила J2EE. Приложения J2EE делаются многопоточными изменением настроек, находящихся на сервере приложения; при этом многопоточность управляется контейнером. Как это происходит? В сущности, бизнес-логика может быть закодирована и затем размещена на сервере в логическом контейнере. Затем настройки контейнера определят, как много экземпляров определенной части бизнес-логики может быть запущено одновременно. Контейнер также определяет, сколько соединений с ресурсами (например, базами данных) можно провести одновременно. С этими свойствами, управляемыми контейнерами, иногда довольно сложно работать, но они дают возможность отделить многопоточность от самого кода приложения. Это хорошо потому, что позволяет применять многопоточность в зависимости от железа без изменения кода приложения. Замены оборудования предприятия – довольно частая вещь: к кластеры могут подключаться новые машины, могут добавляться или убираться процессоры из машин в кластере, и каждое из этих изменений влияют на возможности многопоточности приложений.