Комментарии по поводу многоступенчатого конвейера

Комментарии по поводу многоступенчатого конвейера

Данная реализация характеризуется некоторыми особенностями, суть которых частично отражена в комментариях, включенных в листинг программы. На эти же особенности обращают ваше внимание и упражнения 10.6, 10.7 и 10.10.

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

• Обратите внимание на существование симметрии между передающим и принимающим потоками. Как и при реализации очереди, это обстоятельство упрощает проектирование, отладку и сопровождение программы.

• Реализация не сбалансирована в смысле согласования скорости генерации сообщений, емкости конвейера и коэффициента блокирования "передатчик/приемник".

• В данной реализации (программа 10.4) для защиты очередей используются мьютексы. Результаты экспериментов с объектами CRITICAL_SECTION не позволили обнаружить сколько-нибудь заметного ускорения работы программы на однопроцессорной системе (см. приложение В). CS-версия программы, ThreeStageCS, находится на Web-сайте. Аналогичным образом вела себя программа и после того, как в ней была использована функции SignalObjectAndWait.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

7.2.2.5. Контрпример: почему программа fetchmail не выполнена в виде конвейера

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

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


Замечания по поводу платформ STL от Microsoft

Из книги Эффективное использование STL автора Мейерс Скотт

Замечания по поводу платформ STL от Microsoft В начале книги я ввел термин «платформа STL», означающий комбинацию конкретного компилятора и конкретной реализации STL. Различие между компилятором и библиотекой особенно важно при использовании компилятора Microsoft Visual С++ версий 6 и


7.2.2.5. Контрпример: почему программа fetchmail не выполнена в виде конвейера

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

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


Комментарии по поводу реализации объекта порогового барьера

Из книги Системное программирование в среде Windows автора Харт Джонсон М

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


Комментарии по поводу функций управления очередью с точки зрения производительности

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

Комментарии по поводу функций управления очередью с точки зрения производительности В приложении В представлены данные, характеризующие производительность программы 10.5, в которой используются функции управления очередью. Приведенные ниже замечания по поводу


Комментарии по поводу клиент-серверного процессора командной строки

Из книги VBA для чайников автора Каммингс Стив

Комментарии по поводу клиент-серверного процессора командной строки Данное решение характеризуется рядом особенностей и ограничений, которые будут обсуждаться в последующих главах.• Соединяться с сервером и выполнять параллельные запросы могут сразу несколько


Комментарии по поводу многопоточных моделей

Из книги Фундаментальные алгоритмы и структуры данных в Delphi автора Бакнелл Джулиан М.

Комментарии по поводу многопоточных моделей Для описания методов проектирования многопоточных программ используются такие термины, как пул потоков (thread pool), симметричные потоки (symmetric threads) и асимметричная потоковая организация программ (asymmetric threading), а мы при создании


Замечания по поводу безопасности

Из книги Linux программирование в примерах автора Роббинс Арнольд

Замечания по поводу безопасности В том виде, как она здесь представлена, данная клиент-серверная система не является безопасной. Если на вашей системе выполняется сервер и кому-то известен номер порта, через который вы работаете, и имя компьютера, то он может атаковать


Комментарии по поводу DLL и безопасной многопоточной среды

Из книги автора

Комментарии по поводу DLL и безопасной многопоточной среды • Всякий раз, когда создается новый поток, вызывается функция DllMain с опцией DLL_THREAD_ATTACH, но для основного потока отдельного вызова с опцией DLL_THREAD_ATTACH не существует. В случае основного потока должна использоваться


14.3.2. Дополнительные замечания по поводу библиотеки shell.rb

Из книги автора

14.3.2. Дополнительные замечания по поводу библиотеки shell.rb Метод transact исполняет блок в контексте вызывающего объекта. Таким образом, допустима следующая сокращенная запись:sh = Shell.newsh.transact do echo("Строка данных") > "somefile.txt" cat("somefile.txt","otherfile.txt") > "thirdfile" cat("thirdfile") | tee("file4") >


Важные замечания по поводу циклов For.. .Next

Из книги автора

Важные замечания по поводу циклов For.. .Next Старайтесь, чтобы ваш программный код всегда оставался понятным. Используйте 1 в качестве начального значения для цикла For. . . Next, если только у вас нет серьезных причин выбрать для этого другое число.Такие серьезные причины на


Соображения по поводу эффективности

Из книги автора

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


1.4.5. Заключительные соображения по поводу «GNU Coding Standards»

Из книги автора

1.4.5. Заключительные соображения по поводу «GNU Coding Standards» GNU Coding Standards является стоящим для прочтения документом, если вы хотите разрабатывать новое программное обеспечение GNU, обмениваться существующими программами GNU или просто научиться программировать лучше. Принципы


14.2.2.3. Предостережения по поводу блокировок

Из книги автора

14.2.2.3. Предостережения по поводу блокировок Имеется несколько предостережений, о которых нужно знать при блокировках файлов:• Как описано ранее, вспомогательная блокировка является именно этим. Не взаимодействующий процесс может делать все, что хочет, за спиной (так