Камерон Хьюз - Параллельное и распределенное программирование на С++

Здесь есть возможность читать онлайн «Камерон Хьюз - Параллельное и распределенное программирование на С++» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: МоскваСанкт-ПетербургКиев, Год выпуска: 2004, ISBN: 2004, Издательство: Издательский дом «Вильямс», Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Параллельное и распределенное программирование на С++: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Параллельное и распределенное программирование на С++»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

В книге представлен архитектурный подход к распределенному и параллельному программированию с использованием языка С++. Здесь описаны простые методы программирования параллельных виртуальных машин и основы разработки кластерных приложений. Эта книга не только научит писать программные компоненты, предназначенные для совместной работы в сетевой среде, но и послужит надежным «путеводителем» по стандартам для программистов, которые занимаются многозадачными и многопоточными приложениями. Многолетний опыт работы привел авторов книги к использованию агентно-ориентированной архитектуры, а для минимизации затрат на обеспечение связей между объектами системы они предлагают применить методологию «классной доски».
Эта книга адресована программистам, проектировщикам и разработчикам программных продуктов, а также научным работникам, преподавателям и студентам, которых интересует введение в параллельное и распределенное программирование с использованием языка С++.

Параллельное и распределенное программирование на С++ — читать онлайн бесплатно полную книгу (весь текст) целиком

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

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Предлагалась еще одна альтернатива, в которой рассматривалось использование модели, аналогичной созданию процессов, — «разветвление потока». Семантика разветвления обеспечивала бы большую гибкость, и функцию создания можно было реализовать в виде простого разветвления потока, за которым немедленно следовал вызов требуемой «запускающей» функции. Этот вариант имел такие недостатки.

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

• Эффективность снизилась бы, поскольку пришлось бы копировать по крайней мере некоторую часть стека, несмотря на то, что в большинстве случаев после вызова нужной «запускающей» функции потоку уже не требуется скопированный контекст.

Будущие направления

Отсутствуют.

Смотри также

fork (), pthread_exit () , pthread_join (), то м Base Definitions стандарта IEEE Std 1003.1-2001, .

Последовательность внесения изменений

Функция впервые реализована в выпуске Issue 5. Включена для согласования с расширением POSIX Threads Extension.

Issue 6

Функция pthread_create () от м ечена как часть опции Threads.

В результате согласования со спецификацией Single UNIX Specification был добавлен обязательный код ошибки [EPERM].

С целью согласования со ста н дарто м IEEE Std 1003.1d-1999 для потока была добавлена се м антика тай м ера центрального процессора.

Для согласования со стандарто м ISO/IEC 9899: 1999 в прототип функции pthread_create () было добавлено ключевое слово restrict.

В раздел «Описание» внесено явное утверждение о то м, что среда обработки данных с плаваю щ ей точкой наслелуется от создаю щ его потока.

pthread_detach

Имя

pthread_detach — функция отсоединения потока.

Синопсис

THR

#include

int pthread_detach (pthread_t thread);

Описание

Функция pthread_detach () уведомляет реализацию о том, что область памяти для потока thread может быть восстановлена, когда он завершит выполнение. Если поток не завершается, функция pthread_detach () не служит причиной для его завершения. Результат нескольких вызовов функции pthread_detach () для одного и того же потока не определен.

Возвращаемое значение

При успешном завершении функция pthread_detach () возвращает нулевое значение; в противном случае — код ошибки, обозначающий ее характер.

Ошибки

Функция pthread_detach () завершится неудачно, если:

[EINVAL]реализация обнаружила, что значение, заданное параметром thread, не относится к присоединенному потоку;

[ESRCH]не был найден ни один поток, соответствующий заданному идентификационному номеру потока ID.

Эта функция не возвращает код ошибки [EINTR].

Примеры

Отсутствуют.

Замечания по использованию

Отсутствуют.

Логическое обоснование

Функции pthread_join() или pthread_detach() должны вызываться для каждого потока, который создается, чтобы можно было снова использовать область памяти, связанную с потоком.

Высказывалось мнение о необязательности использования функции pthread_detach (): поскольку поток никогда динамически не отсоединяется, то достаточно использовать атрибут создания потока detachstate. Однако необходимость в этой функции возникает по крайней мере в двух случалх.

1. В обработчике запроса на отмену для функции присоединения потока (pthread__join()) важно иметь функцию pthread_detach(), чтобы отсоединить поток. Без нее обработчик вынужден был бы выполнить еще раз функцию pthread_j oin (), чтобы попытаться отсоединить поток, который не только задерживает процедуру отмены в течение неограниченного времени, но и вносит новый вызов функции pthread_join(). В этом случае есть смысл говорить о динамическом отсоединении.

2. Чтобы отсоединить «исходный поток» (это может понадобиться в процессах, которые создают потоки сервера).

Будущие направления

Отсутствуют.

Смотри также

pthread_join (), том Base Definitions стандарта IEEE Std 1003.1-2001, .

Последовательность внесения изменений

Функция впервые реализована в выпуске Issue 5. Включена д ля согласования с расширение м POSIX Threads Extension.

Issue 6

Функция pthread_detach () отмечена как часть опции Threads.

pthread_exit

Имя

pthread_exit — функция завершения потока.

Синопсис

THR #include

void pthread_exit (void *va2ue_ptr);

Описание

Функция pthread_exit() завершает вызывающий поток и делает значение value _ptr доступны м для успешного присоединения к завершающе м у потоку Любые обработчики отмены, которые были помещены в стек, но еще не извлечены из него, будут извлечены в порядке, обратном тому, в котором они помещались туда, а затем выполнены. Если потоку принадлежат данные, то после выполнения всех обработчиков отмены булут вызваны соответствующие функции деструкторов (в неопределенном порядке). При завершении потока ресурсы процесса, включая мьютексы и дескрипторы файлов, не освобождаются, и не выполняются какие бы то ни было «восстановительные» действия уровня процесса, включал вызовы любых функций atexit(), какие только могут существовать.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Параллельное и распределенное программирование на С++»

Представляем Вашему вниманию похожие книги на «Параллельное и распределенное программирование на С++» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Параллельное и распределенное программирование на С++»

Обсуждение, отзывы о книге «Параллельное и распределенное программирование на С++» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x