Кей Хорстманн (Cay Horstmann) получил большую известность в мире Java-разработчиков благодаря своей книге по J2SE (Том 1 и Том 2), написанной им в соавторстве с Гари Корнеллом (Gary Cornell). Книга выдержала уже 8 изданий и до сих пор является одной из лучших.
Можно отметить и другую книгу, написанную Хорстманном (в соавторстве с другим автором) - "JavaServer Faces", но разговор сейчас не о ней.
В 8-ом издании вышеозначенной книги по J2SE - наткнулся на интересный момент в описании многопоточности (не поленился, открыл 7-ое издание - не так понятно этот момент описан), цитата (стр. 763 русского издания):
"Блокирующие очереди.
Теперь вы знакомы со всеми низкоуровневыми строительными блоками, формирующими основы параллельного программирования в Java. Однако в практическом программировании вы предпочтете держаться насколько возможно, дальше от низкоуровневых конструкций. Гораздо проще и безопаснее работать со структурами более высокого уровня, реализованными экспертами в области параллелизма.
Многие проблемы, связанные с потоками, можно элегантно и безопасно сформулировать, применив одну или более очередей. Поток-поставщик вставляет элементы в очередь, а потоки-потребители извлекают их. Очередь позволяет безопасно передавать данные из одного потока в другой. ..."
- Другими словами речь идет о том, что с помощью ООП - можно решить большинство проблем, связанных с многопоточностью. Один из главных принципов - потоки обмениваются сообщениями (как у меня описано), ну а для реализации отправки сообщений - можно, часто, воспользоваться очередями сообщений (а вот тут можно дистанцироваться от конкретного поставщика, который предоставляет такие очереди и сервис по ним - например ребята из JBoss Community используют такие крайне правильные принципы в своих разработках). В контексте цитаты из книги - блокирующие очереди являются одним из решений (решения под конкретные задачи - могут быть и не c блокирующими очередями).
Я не придумал какие-то фундаментальные принципы, более того - в описании моей архитектуры Parallel-Ax указана, в разделе "Литература", - одна из отличнейших книг по архитектурам систем, основанных на обмене сообщениями.
Мне просто показалось странным, что люди упираются в какие-то "ворота", представляя все в "плоском 2D-измерении" (это имеет смысл при какой-то оптимизации процесса).
Вот я "взял и придумал", конкретное архитектурное решение.
ООП снимает покров мистической чудодейственной силы, приписываемой ФП, :) а теперь и (Хорстманну вы наверняка поверите больше, чем мне) убирает большинство проблем, связанных с многопоточностью.
0 коммент.:
Отправить комментарий