logo
Протокол HTTP

2.2. Программные средства

2.2.1 Потоки

Разработанная программа имеет возможность параллельной обработки запросов от нескольких клиентов. Это достигнуто за счет использования более чем одного потока управления, осуществляющих обработку запросов.

Потоки в системе Linux реализуются посредством программного интерфейса, предоставляемого входящей в состав Linux библиотеки потоков libpthread.

Создание потока разбивается на несколько этапов:

1. Описание функции, которая будет выполняться в рамках потока. Эта функция не должна содержать статических переменных.

2. Создание экземпляра описателя атрибутов потока - структуры типа pthread_attr_t, - и заполнение ее полей в соответствии с необходимыми свойствами создаваемого потока.

3. Создание переменной типа pthread_t, которая будет служить идентификатором создаваемого потока.

4. Создание потока с помощью функции pthread_create(), в которую передается указатель на идентификатор потока, указатель на описатель атрибутов потока, а также адрес поточной функции и ее аргумент.

После создания поток выполняется параллельно с остальными потоками процесса и завершает свою работу при выполнении в поточной функции оператора return или принудительном завершении извне.