Отвечая на вопросы один за другим, но не обязательно в том же порядке:
Является ли pthread_t
типом данных, аналогичным int
или char
, указывающим, что мы определяем поток? Распределяет ли компилятор память для pthread_t thread1
сразу после этого предложения или ждет, пока не найдет вызов pthread_create()
pthread_t
- это тип, похожий на int
, и он создается при его определении, а не при вызове pthread_create
. Во фрагменте:
pthread_t tid;
int x = pthread_create (&tid, blah, blah, blah);
это первая строка, которая создает переменную, хотя она не содержит ничего полезного до возврата из pthread_create
.
Какой размер занимает pthread_t
, 2 байта или 4 байта?
Тебя не должно волновать, сколько места требуется, равно как и заботы о том, сколько места занимает структура FILE
. Вы должны просто использовать структуру, как задумано. Если вы действительно хотите знать, тогда sizeof
ваш друг.
Любая хорошая информация о том, как установить атрибуты потока?
Если вы хотите использовать что-либо, кроме атрибутов по умолчанию, сначала нужно создать переменную атрибутов, а затем передать ее в вызов pthread_create
.
Можем ли мы передать в функцию только один аргумент в функции pthread_create
? Разве мы не можем отправить 2 или 3 аргумента в функции pthread_create()
вызываемому потоку?
Хотя вам разрешено передавать один дополнительный параметр в поток, ничто не мешает вам сделать этот один параметр указателем на структуру, содержащую сотню различных вещей.
Если вы ищете информацию о том, как использовать pthreads, в конце поиска Google есть много материала, но я все равно предпочитаю версию «мертвого дерева»:
