responder a las preguntas una por una, aunque no necesariamente en el mismo orden:
Es pthread_t
un tipo de datos similar a int
o char
, lo que indica que estamos definiendo un hilo? Hace el compilador asigna memoria a pthread_t thread1
inmediatamente después de que la sentencia o se espere hasta que encuentra el pthread_create()
llamada
pthread_t
es un tipo similar a int
y se crea cuando se lo define, no cuando se llama a pthread_create
. En el fragmento:
pthread_t tid;
int x = pthread_create (&tid, blah, blah, blah);
es la línea primera que crea la variable, si bien no se mantiene nada útil hasta el regreso de pthread_create
.
¿Cuánto mide pthread_t
tomar, 2 bytes o 4 bytes?
No debería importar cuánto espacio ocupa, de la misma forma que no debería importar cuánto espacio ocupa una estructura FILE
. Deberías usar la estructura como se pretendía. Si realmente quiere saber, entonces sizeof
es su amigo.
¿Alguna buena información acerca de cómo establecer los atributos del hilo?
Si desea utilizar algo distinto de los atributos predeterminados, primero debe crear una variable de atributos y luego pasarla a la llamada pthread_create
.
¿Podemos solo pasar un argumento en la función pthread_create
a la función? ¿No podemos enviar 2 o 3 argumentos en la función pthread_create()
al hilo llamado?
Si bien sólo se permite pasar un parámetro adicional para el hilo, no hay nada que le para de hacer este un parámetro un puntero a una estructura que sostiene un centenar de cosas diferentes.
Si está buscando información sobre cómo utilizar pthreads, hay un montón de cosas al final de una búsqueda en Google, pero yo prefiero la versión árboles muertos a mí mismo:
Esto depende de la plataforma. En algunos sistemas, es una 'struct'. –