Con riferimento ai parametri della funzione pthread_create() indica l'espressione corretta:Scegli un'alternativa:a. il secondo è il puntatore al parametro da passare al threadb. il primo è il puntatore ad una variabile pthread_tc. il terzo è NULL se si vogliono indicare gli attributi di default del threadd. il quarto è il puntatore alla funzione del thread
Question
Con riferimento ai parametri della funzione pthread_create() indica l'espressione corretta:Scegli un'alternativa:a. il secondo è il puntatore al parametro da passare al threadb. il primo è il puntatore ad una variabile pthread_tc. il terzo è NULL se si vogliono indicare gli attributi di default del threadd. il quarto è il puntatore alla funzione del thread
Solution
Per rispondere correttamente alla domanda, dobbiamo analizzare i parametri della funzione pthread_create(). La funzione ha la seguente firma:
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);
Ora, esaminiamo ciascuna delle alternative fornite:
a. il secondo è il puntatore al parametro da passare al thread
- Questo non è corretto. Il secondo parametro è un puntatore a una struttura di attributi del thread (
pthread_attr_t).
b. il primo è il puntatore ad una variabile pthread_t
- Questo è corretto. Il primo parametro è un puntatore a una variabile di tipo
pthread_t, che rappresenta il thread creato.
c. il terzo è NULL se si vogliono indicare gli attributi di default del thread
- Questo non è corretto. Il terzo parametro è un puntatore alla funzione che il thread eseguirà.
d. il quarto è il puntatore alla funzione del thread
- Questo non è corretto. Il quarto parametro è un puntatore al parametro che verrà passato alla funzione del thread.
Quindi, l'espressione corretta è:
b. il primo è il puntatore ad una variabile pthread_t
Similar Questions
Quale funzione utilizzeresti per garantire che un thread aspetti un altro thread?Scegli un'alternativa:a. pthread_sync()b. pthread_block()c. pthread_wait()d. pthread_join()
Data la seguente porzione di codicevoid *stampa(void *parametro){ sleep(2); cout << "Ciao sono il thread Pippo.\n";}int main(int na, char **va){ pthread_t tid; pthread_create(&tid, 0, stampa, 0); cout << "Sono il MAIN thread Pluto\n";}L’output del programma è:Scegli un'alternativa:a. Ciao sono il thread PippoSono il Main thread Plutob. Sono il Main thread Plutoc. Sono il Main thread PlutoCiao sonoil thread Pippod. Ciao sono il thread Pippo
Qual è il comportamento del seguente codice? #include <stdio.h>#include <pthread.h>pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;void* threadFunc(void* arg) { pthread_mutex_lock(&mutex); printf("Thread is running\n"); pthread_mutex_unlock(&mutex); return NULL;}int main() { pthread_t thread; pthread_create(&thread, NULL, threadFunc, NULL); pthread_mutex_lock(&mutex); printf("Main thread\n"); pthread_mutex_unlock(&mutex); pthread_join(thread, NULL); return 0;}Scegli un'alternativa:a. Stampa "Main thread" seguito da "Thread is running".b. Genera un deadlock.c. Stampa "Thread is running" seguito da "Main thread".d. Stampa "Thread is running" e "Main thread" in ordine casuale.
Cosa stampa il seguente codice? #include <stdio.h>#include <pthread.h>#define NUM_THREADS 3void* threadFunc(void* arg) { int id = *(int*)arg; printf("Thread %d\n", id); return NULL;}int main() { pthread_t threads[NUM_THREADS]; int thread_ids[NUM_THREADS]; for (int i = 0; i < NUM_THREADS; i++) { thread_ids[i] = i; pthread_create(&threads[i], NULL, threadFunc, &thread_ids[i]); } for (int i = 0; i < NUM_THREADS; i++) { pthread_join(threads[i], NULL); } return 0;}Scegli un'alternativa:a. Stampa "Thread 0\nThread 1\nThread 2\n" in ordine casuale.b. Non stampa nulla.c. Stampa "Thread 0\nThread 1\nThread 2\n" in questo ordine.d. Stampa "Thread 2\nThread 1\nThread 0\n" in questo ordine.
Quali, tra le seguenti espressioni rappresenta la funzione che contiene la routine di un thread?Scegli un'alternativa:a. void *codice_thread(void * arg)b. void codice(void arg)c. int codice_thread()d. int *codice_thread(int * arg)
Upgrade your grade with Knowee
Get personalized homework help. Review tough concepts in more detail, or go deeper into your topic by exploring other relevant questions.