Главная » Просмотр файлов » Г. Шилдт - С#4.0 Полное руководство

Г. Шилдт - С#4.0 Полное руководство (1160795), страница 166

Файл №1160795 Г. Шилдт - С#4.0 Полное руководство (Г. Шилдт - С#4.0 Полное руководство) 166 страницаГ. Шилдт - С#4.0 Полное руководство (1160795) страница 1662019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 166)

981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 Время выполнения: 00:00."00.0140000 Время выполнения: 0:00:00.014 Время выполнения: 0:00:00:00.0140000 Время выполнения: 0.014 секунды Форматирование перечислений В С№ допускается также форматировать значения, определяемые в перечислении. Вообще говоря, значения из перечисления могут отображаться как по имени, так и по значению.

Спецификаторы формата перечислений сведены в табл. 22.10. Обратите особое внимание на форматы 0 и р. Перед перечислениями, которые должны представлять битовые поля, следует указывать атрибут Г1адв. Как правило, в битовых полях хранятся значения, обозначающие отдельные двоичные разряды и упорядоченные Глава 22. Строки и форматирование 83д по степени числа 2. При наличии атрибута Е1адя имена всех битовых составляющих форматируемого значения, если, конечно, вто действительное значение, отображаются с помощью спецификатора 01 А с помощью спецификатора Е отображаются имена всех битовых составляющих форматируемого значения, если оно составляется путем логического сложения по ИЛИ двух или более полей, определяемых в перечислении.

Таблица 22.10. Спецификаторы формата перечислений Спецификатор Назначение Отображает значение в виде десятичного целого числа То же, что и Р Отображает имя значения. Если зто значение можно создать путем логического сложения по ИЛИ двух или более полей, определенных в перечислении, то данный спецификатор отображает имена всех битовых составляющих заданного значения, причем независимо от того, задан атрибут Е1адя или нет То же, что и р Отображает имя значения.

Если перед форматируемым перечислением указывается атрибут Е1адя, то данный спецификатор отображает имена всех битовых составляющих заданного значения, если, конечно, зто допустимое значение То же, что и 5 Отображает значение в виде шестнадцатеричного целого числа. Дпя отображения как минимум восьми цифр форматируемое значение дополняется (при необходимости) начальными нулями То же, что и х В приведенной ниже программе демонстрируется применение спецификаторов формата перечислений. УУ Отформатировать перечисление. оягпд Буясеьо с1аяя Еппиуигоеио [ епога Р1геосгоп [ Ногтв, Боись, Еаят, Хеяс ) [Е1адя) епои Благия ) аеабу=Ох1, 01ГЬ1пе=Ох2, Хагсгпд=Ох4, тгапяи1СОК=Охз, Кесеттеок=Ох10, ОпЬ1пе=Ох20 ) ягягтс тогб на)п[) Ртгессгоп б = Рггесггоп.иеяг; Сопяо1е.нггсеьгпе["[Осо)", б); Сопяо1е.нгтгеЬ1пе["[О:Е)", б)Г Сопяо1е.нг1геьгпе["[О:Р)", б)г Сопяо1е.нгтсе11пе["[Осх)", с)); Бсагоя я = Бгагоя.веабу ) Бсасоя.тгапятгсок; 834 Часть! Е Бибаиатека Сй ТРЕ, рекомендуется теперь как основной подход к разработке многопоточных приложений.

Тем не менее накопленный опыт создания исходной многопоточной подсистемы по-прежнему имеет значение по целому ряду причин. Во-первых, уже существует немалый объем унаследованного кода, в котором применяется первоначальный подход к многопоточной обработке. Если приходится работать с таким кодом или сопровождать его, то нужно знать, как работает исходная многопоточная система. Во-вторых, в коде, опирающемся на ТРЕ, могут по-прежнему использоваться элементы исходной многопоточной системы, и особенно ее средства синхронизации. И в-третьих, несмотря на то что сама библиотека ТРЕ основывается на абстракции, называемой задачей, она по-прежнему неявно опирается на потоки и потоковые средства, описываемые в этой главе. Поэтому для полного усвоения и применения ТРЕ потребуются твердые знания материала, излагаемого в этой главе. И наконец, следует особо подчеркнуть, что многопоточная обработка представляет собой довольно обширную тему, и поэтому подробное ее изложение выходи~ за рамки этой книги.

В этой и последующей главах представлен лишь беглый обзор данной темы и демонстрируется ряд основополагающих методик. Следовательно, материал этих глав может служить введением в эту важную тему и основанием для дальнейшего ее самостоятельного изучения. Основы многопоточной обработки Различают две разновидности многозадачности: на основе процессов и на основе потоков.

В связи с этим важно понимать отличия между ними. Лрсцкс фактически представляет собои исполняемую программу. Поэтому многозадачность на основе ьроцессов — это средство, благодаря которому на компьютере могут параллельно выполняться две программы и более. Так, многозадачность на основе процессов позволяет одновременно выполнять программы текстового редактора, 'электронных таблиц и просмотра содержимого в Интернете. При организации многозадачности на основе процессов программа является наименьшей единицей кода, выполнение которой может координировать планировщик задач. Лоток представляет собой координируемую единицу исполняемого кода.

Своим происхождением этот термин обязан понятию "поток исполнения". При организации многозадачности на основе потоков у каждого процесса должен быть по крайней мере один поток, хотя их может быть и больше. Зго означает, что в одной программе одновременно могут решаться две задачи и больше.

Например, текст может форматироваться в редакторе текста одновременно с его выводом на печать, при условии, что оба эти действия выполнякзтся в двух отдельных потоках. Отличия в многозадачности на основе процессов и потоков могут быть сведены к следующему: многозадачность на основе процессов организуется для параллельного выполнения программ, а многозадачность на основе потоков — для параллельного выполнения отдельных частей одной программы. Главное преимущество многопоточной обработки заключается в том, что она позволяет писать программы, которые работают очень эффективно благодаря возможности выгодно использовать время простоя, неизбежно возникающее в ходе выполнения большинства программ.

Как известно, большинство устройств ввода-вывода, будь то устройства, подключенные к сетевым портам, накопители на дисках или клавиатура, работают намного медленнее, чем центральный процессор (ЦП). Поэтому большую Гвава 23. Многопоточное программирование. Часть первая: основы 835 часть своего времени программе приходится ожидать отправки данных на устройство ввода-вывода или приема информации из него. А благодаря многопоточной обработке программа может решать какую-нибудь другую задачу во время вынужденного простоя.

Например, в то время как одна часть программы отправляет файл через соединение с Интернетом, другая ее часть может выполнять чтение текстовой информации, вводимой с клавиатуры, а третья — осуществлять буферизацию очередного блока отправляемых данных. Поток может находиться в одном из нескольких состояний. В целом, поток может быть выполняюгнимся; гопювым к выполнению, как только он получит время и ресурсы ЦП; яриоспгановлвнным, т.е. временно не выполняющимся; возобновленным в дальнейшем; заблокированным в ожидании ресурсов для своего выполнения; а также завершенныгя, когда его выполнение окончено и не может быть возобновлено. В среде .НЕТ Егашетчог1 определены две разновидности потоков: яриорипгеягныи и фоновый. По умолчанию создаваемый поток автоматически становится приоритетным, но его можно сделать фоновым. Единственное отличие приоритетных потоков от фоновых заключается в том, что фоновый поток автоматически завершается, если в его процессе остановлены все приоритетные потоки.

В связи с организацией многозадачности на основе потоков возникает потребность в особого рода режиме, который называется сннхронизаниеи и позволяет координировать выполнение потоков вполне определенным образом. Для такой синхронизации в СФ предусмотрена отдельная подсистема, основные средства которой рассматриваются в этой главе. Все процессы состоят хотя бы из одного потока, который обычно называют основным, поскольку именно с него начинается П:ыполнение программы. Следовательно, в основном потоке выполнялись все приведенные ранее примеры программ. Из основного потока можно создать другие потоки.

В языке С4 и среде .НЕТ Ргашетчог1 поддерживаются обе разновидности многозадачности: на основе процессов и на основе потоков. Поэтому средствами С4 можно создавать как процессы, так и потоки, а также управлять и теми и другими. Для того чтобы начать новый процесс, от программирующего требуется совсем немного усилий, поскольку каждый предыдущий процесс совершенно обособлен от последующего.

Характеристики

Тип файла
DJVU-файл
Размер
7,66 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее