4.6. Сравнение процессов и потоков

4.6. Сравнение процессов и потоков

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

? Все потоки программы должны выполнять один и тот же код. В то же время дочерний процесс может запустить другой исполняемый файл с помощью функции exec().

? Неправильно работающий поток способен помешать другим потокам того же процесса, поскольку все они используют одни и те же ресурсы. Например, неверное обращение к указателю может привести к искажению области памяти, используемой другим потоком. Процесс лишен возможности это делать, так как у него своя копия памяти,

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

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

? Совместное использование данных несколькими потоками — тривиальная задача, ведь потоки имеют общий доступ к ресурсам (необходимо, правда, внимательно следить за тем, чтобы не возникало состояние гонки). В случае процессов требуется задействовать особый механизм взаимодействия, описанный в главе 5, "Взаимодействие процессов". Это делает программы более громоздкими, зато уменьшает вероятность ошибок, связанных с параллельной работой.

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

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

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

Взаимосвязь процессов, доменов приложений, контекстов и потоков

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Взаимосвязь процессов, доменов приложений, контекстов и потоков В предыдущей главе обсуждалось понятие потока, который был определен, как путь исполнения в рамках выполняемого приложения. И хотя многие приложения .NET имеют только один поток и, тем не менее, оказываются


Сравнение ссылок

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

Сравнение ссылок Наряду с присваиванием возникает необходимость и в тесте - проверить, присоединены ли две ссылки к одному и тому же объекту. Для этого есть оператор эквивалентности =.Если x и y - сущности ссылочного типа, то выражение:x = yистинно тогда и только тогда, когда


Обработчики завершения: завершение процессов и потоков

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

Обработчики завершения: завершение процессов и потоков Обработчики завершения не выполняются, если выполнение процесса или потока было прекращено независимо от того, было ли это инициировано самим процессом путем использования функций ExitProcess или ExitThread, или вызвано


Приоритеты процессов и потоков и планирование выполнения

Из книги Серверные технологии хранения данных в среде Windows® 2000 Windows® Server 2003 автора Дайлип Наик

Приоритеты процессов и потоков и планирование выполнения Ядро Windows всегда запускает тот из потоков, готовых к выполнению, который обладает наивысшим приоритетом. Поток не является готовым к выполнению, если он находится в состоянии ожидания, приостановлен или


Предостережение относительно использования приоритетов потоков и процессов

Из книги О чём не пишут в книгах по Delphi автора Григорьев А. Б.

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


Стеки потоков и допустимые количества потоков

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

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


4.2 Сравнение SAN и NAS

Из книги C++. Сборник рецептов автора Диггинс Кристофер

4.2 Сравнение SAN и NAS В главе 3 рассматривается технология NAS: Прежде чем знакомиться с архитектурой сетей хранения данных на базе Fibre Channel, следует провести сравнение принципов создания хранилищ. В табл. 4.1 описываются различия и общие черты этих технологий.Таблица 4.1.


3.2.7. Сравнение

Из книги QNX/UNIX [Анатомия параллелизма] автора Цилюрик Олег Иванович


3.3.4. Сравнение строк

Из книги Продвижение порталов и интернет-магазинов автора Гроховский Леонид О.


Сравнение индексов

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

Сравнение индексов Изучая поисковые индексы «Яндекс» и Google с помощью операторов inurl: и site, мы можем найти разницу в количестве проиндексированных страниц по сайту в целом и по каждому кластеру в частности. Это самая простая и эффективная проверка сайта на ошибки,