I. Управление потоками

 

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

В ОС UNIX/Linux имеется API для потоков стандарта POSIX (Portable Operating System Interface) - pthreads("P" - от POSIX). Прототипы функций работы с потоками и необходимые типы данных содержатся в заголовочном файле <pthread.h>. Эти функции не включены в стандартную библиотеку языка С, они находятся в библиотеке libthread. Поэтому в командную строку для компоновки необходимо добавить опцию (см. лабораторную работу 2)

-lpthread

Каждый поток имеет свой идентификатор потока, ID потока. В программах на С/С++ для ID потоков следует использовать тип pthread_tиз <sys/types/.h>.