bannerbannerbanner
logo
Войти

Многопоточное исполнение

Поиск состояний гонки для современных программ со сложной архитектурой – актуальная задача. В статье предложена и обоснована модель исполнения потоков, позволяющая искать состояния гонки в статическом режиме. Она ориентирована на алгоритмы с искусственными средствами синхронизации, а также на многопоточные программы с атомарными операциями. В отличие от известных моделей многопоточного исполнения, предложенная модель описывает исполнение на более низком уровне – на уровне исполнения процессором инструкций.
«Путь Python» позволяет отточить ваши профессиональные навыки и узнать как можно больше о возможностях самого популярного языка программирования. Эта книга написана для разработчиков и опытных программистов. Вы научитесь писать эффективный код, создавать лучшие программы за минимальное время и избегать распространенных ошибок. Пора познакомиться с многопоточными вычислениями и меморизацией, получить советы экспертов в области дизайна API и баз данных, а также заглянуть внутрь Python, чтобы расширить понимание языка. Вам предстоит начать проект, поработать с версиями, организовать автоматическое тестирование и выбрать стиль программирования для конкретной задачи. Потом вы перейдете к изучению эффективного объявления функции, выбору подходящих структур данных и библиотек, созданию безотказных программ, пакетам и оптимизации программ на уровне байт-кода.
В пособии описаны методы и средства разработки многозадачного и многопоточного программного обеспечения в операционных системах семейства Windows, средства межзадачной и межпоточной коммуникации: анонимные и именованные каналы, почтовые ящики, отображаемые на память файлы, события, семафоры, взаимные исключения. Кроме того, кратко обсуждаются средства коммуникации процессов по сети, а также особенности взаимодействия приложений и системных служб. Приводятся примеры реализации программ и даются задания для самостоятельной работы, включая варианты повышенной сложности. Рекомендовано студентам ряда технических специальностей, связанных с разработкой многозадачного и многопоточного программного обеспечения в среде операционных систем семейства Windows.
В статье проанализирован подход к статическому анализу кода на предмет обнаружения состояний гонки. Он ориентирован на реальные задачи со сложными конструкциями кода, включающие циклы и ветвления. Предложенный метод включает моделирование исполнения многопоточного приложения и анализ построенной модели. Модель подходит для реальных задач, под которыми понимаются те, где логика и понятие корректности привязаны к конкретным значениям переменных и истории операций над разделяемыми переменными, а не к попарному их сопоставлению.
Добавлено
Год выхода: 2020
Язык: Русский
Потоки являются фундаментальной частью платформы Java. Многоядерные процессоры – это обыденная реальность, а эффективное использование параллелизма стало необходимым для создания любого высокопроизводительного приложения. Улучшенная виртуальная машина Java, поддержка высокопроизводительных классов и богатый набор строительных блоков для задач распараллеливания стали в свое время прорывом в разработке параллельных приложений. В «Java Concurrency на практике» сами создатели прорывной технологии объясняют не только принципы работы, но и рассказывают о паттернах проектирования. Легко создать конкурентную программу, которая вроде бы будет работать. Однако разработка, тестирование и отладка многопоточных программ доставляют много проблем. Код перестает работать именно тогда, как это важнее всего: при большой нагрузке. В «Java Concurrency на практике» вы найдете как теорию, так и конкретные методы создания надежных, масштабируемых и поддерживаемых параллельных приложений. Авторы не предлагают перечень API и механизмов параллелизма, они знакомят с правилами проектирования, паттернами и моделями, которые не зависят от версии Java и на протяжении многих лет остаются актуальными и эффективными. После покупки предоставляется дополнительная возможность скачать книгу в формате epub.
В наши дни компьютеры с несколькими многоядерными процессорами стали нормой. Стандарт C++11 языка C++ предоставляет развитую поддержку многопоточности в приложениях. Поэтому, чтобы сохранять конкурентоспособность, вы должны овладеть принципами и приемами их разработки, а также новыми средствами языка, относящимися к параллелизму. Книга «Параллельное программирование на С++ в действии» не предполагает предварительных знаний в этой области. Вдумчиво читая ее, вы научитесь писать надежные и элегантные многопоточные программы на C++11. Вы узнаете о том, что такое потоковая модель памяти, и о том, какие средства поддержки многопоточности, в том числе запуска и синхронизации потоков, имеются в стандартной библиотеке. Попутно вы познакомитесь с различными нетривиальными проблемами программирования в условиях параллелизма.
1
Популярные книги