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