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)
Question
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)
Solution
Per rispondere alla domanda, dobbiamo identificare quale delle espressioni rappresenta la funzione che contiene la routine di un thread. In generale, la routine di un thread inizia con una funzione che ha un tipo di ritorno void * e accetta un argomento di tipo void *. Questo è tipico nelle librerie di threading come pthreads in C.
Analizziamo le opzioni:
a. void *codice_thread(void * arg):
- Tipo di ritorno:
void * - Argomento:
void * arg - Questa opzione è corretta perché corrisponde alla firma tipica di una funzione di thread.
b. void codice(void arg):
- Tipo di ritorno:
void - Argomento:
void arg - Questa opzione non è corretta perché il tipo di ritorno non è
void *e l'argomento non èvoid *.
c. int codice_thread():
- Tipo di ritorno:
int - Argomento: nessuno
- Questa opzione non è corretta perché il tipo di ritorno non è
void *e manca l'argomento.
d. int *codice_thread(int * arg):
- Tipo di ritorno:
int * - Argomento:
int * arg - Questa opzione non è corretta perché il tipo di ritorno non è
void *.
Quindi, l'alternativa corretta è:
a. void *codice_thread(void * arg)
Similar Questions
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.
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.
Quale funzione viene utilizzata per avviare l'esecuzione di un thread in C++?Scegli un'alternativa:a. start()b. Il thread inizia l'esecuzione immediatamente dopo la sua creazionec. launch()d. run()
La sezione critica è:Scegli un'alternativa:a. Una porzione di codice dove più thread possono accedervi. E’ necessario che quando un thread è in esecuzione nella sua sezione critica nessun altro thread può essere in esecuzione nella sua sezione criticab. Una pozione di codice dove i thread vi accedono uno alla voltac. Nessuna delle precedentid. Una porzione di codice dove tutti i thread possono accedervi
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.