Qual è la funzione che tenta di bloccare un mutex e restituisce immediatamente se il mutex è già bloccato in C?Scegli un'alternativa:a. pthread_mutex_trylock()b. pthread_mutex_lock()c. pthread_mutex_timedlock()d. pthread_mutex_wait()
Question
Qual è la funzione che tenta di bloccare un mutex e restituisce immediatamente se il mutex è già bloccato in C?Scegli un'alternativa:a. pthread_mutex_trylock()b. pthread_mutex_lock()c. pthread_mutex_timedlock()d. pthread_mutex_wait()
Solution
La risposta corretta è a. pthread_mutex_trylock(). Questa funzione tenta di bloccare un mutex e restituisce immediatamente se il mutex è già bloccato.
Similar Questions
Cosa succede se un thread tenta di sbloccare un mutex che non ha bloccato?Scegli un'alternativa:a. Si verifica un comportamento indefinitob. Il mutex viene sbloccatoc. Il thread termina immediatamented. Il thread entra in deadlock
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 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()
I mutex:Scegli un'alternativa:a. Permettono di proteggere una risorsa condivisa e il suo valore può essere modificato dal processo che acquisisce la risorsab. E’ un meccanismo di segnalazione tra processi e serve a condividere una risorsa che può essere utilizzata da più threadc. Nessuna delle precedentid. Hanno lo scopo di proteggere una risorsa condivisa in modo che più processi non possano accedervi contemporaneamente. Un mutex può essere rilasciato solo dal thread che aveva acquisito il lock sulla risorsa.
Cosa farà il seguente programma? #include <stdio.h>#include <pthread.h>pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;int sharedVar = 0;void* modifyVar(void* arg) { pthread_mutex_lock(&mutex); sharedVar = *(int*)arg; pthread_mutex_unlock(&mutex); return NULL;}int main() { pthread_t thread; int newValue = 10; pthread_create(&thread, NULL, modifyVar, &newValue); pthread_join(thread, NULL); printf("Shared Variable: %d\n", sharedVar); return 0;}Scegli un'alternativa:a. Stampa "Shared Variable: 10".b. Stampa un valore casuale per "Shared Variable".c. Genera un errore di compilazione.d. Stampa "Shared Variable: 0"
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.