Knowee
Questions
Features
Study Tools

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

🧐 Not the exact question you are looking for?Go ask a question

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

This problem has been solved

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)

1/3

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.