Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
Топ:
Основы обеспечения единства измерений: Обеспечение единства измерений - деятельность метрологических служб, направленная на достижение...
Оснащения врачебно-сестринской бригады.
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов...
Интересное:
Финансовый рынок и его значение в управлении денежными потоками на современном этапе: любому предприятию для расширения производства и увеличения прибыли нужны...
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Дисциплины:
2017-11-27 | 151 |
5.00
из
|
Заказать работу |
Цель работы: научиться проводить анализ преимуществ, недостатков, проблем многопоточностив.NET
Оборудование: Персональный компьютер с ОС Linux
Индивидуальное задание. Провести анализ многопоточности, выявить особенности, достоинства и недостатки многопоточности в.NET.
Теоретические сведения
NET Framework — программная платформа, выпущенная компанией Microsoft в 2002 году. Основой платформы является общеязыковая среда исполнения CommonLanguageRuntime (CLR), которая подходит для разных языков программирования.
Считается, что платформа.NET Framework явилась ответом компании Microsoft на набравшую к тому времени большую популярность платформу Java компании SunMicrosystems (ныне принадлежит Oracle).
Почти все возможности.NET Framework доступны через обширное множество управляемых типов. Эти типы организованы в иерархические пространства имен и упакованы в набор сборок, которые вместе со средой CLR составляют платформу.NET.
NET Framework состоит из прикладных API-интерфейсов, большинствоиз которых покрывают три области функциональности:
• технологии пользовательских интерфейсов;
• технологии серверной части;
• технологии распределенных систем.
Функциональные возможности.NET Framework:
• Обширная поддержка асинхронности через методы возврата из задач.
• Поддержка протокола сжатия ZIP.
• Улучшенная поддержка HTTP через новый класс HttpClient.
• Улучшение показателей производительности для сборки мусора и извлеченияресурсов сборки.
• Поддержка взаимодействия WinRT и API-интерфейсов для построения планшетных приложений в стиле Metro.
Платформа.NET Framework предоставляет потоковую модель для низкоуровневого ввода-вывода. Обычно для чтения и записи непосредственно в файлы и сетевыеподключения используются потоки данных, которые могут быть соединены или помещены внутрь декорированных потоков для добавления функциональности сжатияили шифрования.
Асинхронные функции C# 5 значительно упрощают параллельное программирование, поскольку они уменьшают потребность в работе с низкоуровневыми технологиями. Тем не менее, все еще возникают ситуации, при которых нужны сигнальныеконструкции, локальное хранилище потока, блокировки чтения/записи и т.п.
Поток может находиться в одном из нескольких состояний. В целом, поток может быть выполняющимся; готовым к выполнению, как только он получит время и ресурсы ЦП; приостановленным, т.е. временно не выполняющимся; возобновленным в дальнейшем; заблокированным в ожидании ресурсов для своего выполнения; а также завершенным, когда его выполнение окончено и не может быть возобновлено.
В среде.NET Framework определены две разновидности потоков: приоритетный и фоновый. По умолчанию создаваемый поток автоматически становится приоритетным, но его можно сделать фоновым. Единственное отличие приоритетных потоков от фоновых заключается в том, что фоновый поток автоматически завершается, если в его процессе остановлены все приоритетные потоки.
В связи с организацией многозадачности на основе потоков возникает потребность в особого рода режиме, который называется синхронизацией и позволяет координировать выполнение потоков вполне определенным образом. Для такой синхронизации в C# предусмотрена отдельная подсистема.
Все процессы состоят хотя бы из одного потока, который обычно называют основным, поскольку именно с него начинается выполнение программы. Из основного потока можно создать другие потоки.
В языке C# и среде.NET Framework поддерживаются обе разновидности многозадачности: на основе процессов и на основе потоков. Поэтому средствами C# можно создавать как процессы, так и потоки, а также управлять и теми и другими. Для того чтобы начать новый процесс, от программирующего требуется совсем немного усилий, поскольку каждый предыдущий процесс совершенно обособлен от последующего.
Намного более важной оказывается поддержка в C# многопоточной обработки, благодаря которой упрощается написание высокопроизводительных, многопоточных программ на C# по сравнению с некоторыми другими языками программирования.
Для создания потока необходимо указать метод, используемый для выполнения потока.
• Основные операции
o Запуск
o Ожидание завершения
o Запрос досрочного завершения
Пулы потоков:
• Запросы сервера удобно обрабатывать в отдельных потоках
• Большое количество запросов – большое количество потоков – медленная работа
• Необходимо ограничить количество потоков – так появился пул потоков
Таймеры:
• Выполнение периодически повторяющихся операций
• Выполнение операций по истечении указанного интервала времени
• Для выполнения операции таймера используется отдельный поток
• Виды таймеров
o System.Threading.Timer – обычный
o System.Windows.Forms.Timer – «оконный», без создания дополнительного потока
o System.Timers.Timer – устаревший класс
Обработка исключений:
• Исключение может произойти в любом потоке
• Исключение будет выбрасываться повторно
Контекст выполнения потока. Контекст включает:
o Параметры безопасности
o Параметры локализации
o Параметры транзакций
Контекст занимает много места и копируется в создаваемые потоки
• У процессора есть кэш, ускоряющий работу с памятью
o Данные читаются в кэш из памяти
o Данные модифицируются в кэше
• При совместном использовании памяти несколькими ядрами каждое ядро имеет свой кэш
Недостатки традиционной реализации многопоточности
• Традиционные средства императивных языков программирования рассчитаны на однопоточное выполнение инструкций
• Расширение возможностей языков программирования по поддержке многопоточности обеспечивается за счёт применения готовых библиотек и API операционных систем
o Предоставляются низкоуровневые примитивы, ориентированные на реализацию потоков и их синхронизацию, но не распараллеливание обычных алгоритмов
o Реализация и отладка даже несложных алгоритмов в многопоточных программах становится трудной задачей
o Требуется значительное время на обеспечение приемлемого качества кода
o Необходимо самостоятельно управлять количеством потоков с учётом аппаратных возможностей
o Разработанный код трудно обслуживать и использовать повторно.
Преимущества использования пула потоков
• Возможность одновременно обрабатывать ограниченное количество запросов клиентов с постановкой в очередь ожидающих запросов
• Эффективно при наличии значительного числа операций ввода-вывода и ожидания внешних сервисов
• Повышение эффективности использования аппаратных ресурсов системы
• Возможность быстро запускать обработку поступившего запроса при наличии одного или нескольких свободных потоков в пуле.
Ход работы:
1. Ознакомиться с теоретическими сведениями.
2. Провести анализ многопоточности, выявить особенности, достоинства и недостатки. Результаты оформить в таблице.
Содержание отчета
Отчет по практической работе должен содержать следующие пункты:
- название практической работы;
- цель работы;
- краткие теоретические сведения;
- индивидуальное задание для выполнения практической работы;
- краткое описание хода выполнения работы;
- результаты выполнения работы;
- выводы.
Практическая работа №14
Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!