Операционные системы. Процессы и потоки. Илюшкин Б.И. - 39 стр.

UptoLike

Составители: 

языка С, поэтому при компоновке программы необходимо задавать
опцию –lpthread в командной строке.
Для создания потока используется функция
pthread_create(). Данной функции передаются следующие па-
раметры:
Указатель на переменную типа pthread_t, в которой сохра-
няется идентификатор нового потока. При ссылке на иденти-
фикаторы потоков в программах на С или С++ необходимо
использовать тип данных pthread_t.
Указатель на объект атрибутов потока. Этот объект определя-
ет взаимодействие потока с остальной частью программы. Ес-
ли задать его равным NULL, поток будет создан со стандарт-
ными атрибутами.
Указатель на потоковую функцию. Функция имеет следующий
тип: void* (*) (void*)
Значение аргумента потока (тип void*). Данное значение пе-
редается потоковой функции.
При вызове программы Linux создает для нее новый процесс с
единственным потоком, последовательно выполняющим программ-
ный код. Этот поток может создавать дополнительные потоки, ко-
торые находятся в одном процессе и выполняют части программно-
го кода. Ниже приводится программа создания нового потока, кото-
рый совместно с главным потоком изменяет разделяемую статиче-
скую глобальную переменную. Для вывода идентификатора выпол-
няемого в текущий момент потока используется функция
pthread_self(). Для того, чтобы родительский поток не завер-
шился раньше дочернего, используется функция
pthread_join(). Данная функция принимает два аргумента:
идентификатор ожидаемого потока и указатель на переменную
39