ВУЗ:
Составители:
217
8.ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 3. ЗНАКОМСТВО С ПО-
ТОКАМИ И ИХ СИНХРОНИЗАЦИЕЙ В ОС UNIX
8.1 Цель работы
Ознакомиться с подсистемой управления потоками в операционной
системе Unix и основными программными средствами для создания,
управления и удаления потоков.
8.1 Задание
Изучить основные программные средства управления потоками ОС
Unix, а также способы синхронизации потоков. Разработать приложения
для многопоточных вычислений с использованием синхронизации по-
средством мьютексов, семафоров и условных переменных.
8.2 Управление потоками
8.2.1 Программирование потоков
В Linux каждый поток на самом деле является процессом, и для то-
го, чтобы создать новый поток, нужно создать новый процесс. Однако
для создания дополнительных потоков используются процессы особого
типа. Эти процессы представляют собой обычные дочерние процессы
главного процесса, но они разделяют с главным процессом адресное
пространство, файловые дескрипторы и обработчики сигналов. Для обо-
значения процессов этого типа применяется специальный термин – лег-
кие процессы (lightweight processes). Поскольку для потоков не требует-
ся создавать собственную копию адресного пространства (и других ре-
сурсов) своего процесса-родителя, создание нового легкого процесса
требует значительно меньших затрат, чем создание полновесного до-
чернего процесса.
Спецификация POSIX 1003.1c требует, чтобы все потоки многопо-
точного приложения имели один идентификатор, однако в Linux у каж-
дого процесса, в том числе и у процессов-потоков, есть свой идентифи-
катор.
8.2.2 Основные функции для работы с потоками
Для работы с потоками используются следующие основные функ-
ции:
pthread_create – создание потока;
pthread_join – блокирование работы вызвавшего функцию про-
цесса или потока в ожидании завершения потока;
Страницы
- « первая
- ‹ предыдущая
- …
- 215
- 216
- 217
- 218
- 219
- …
- следующая ›
- последняя »
