Ich habe eine Frage und ihre Antworten von einer alten Prüfung, aber ich verstehe die Lösung nicht. Kann mir das jemand erklären?kann jemand die Lösung dieser beiden Fragen (c Programm, Mutex, Threads) erklären?
dieses C-Programm Gegeben:
int a = 0;
int b = 0;
pthread_mutex_t m;
void * f()
{
_________________ (Empty Line for question number 2)
a = a + 1;
pthread_mutex_lock(&m);
b = b + 1;
printf("a = %d, b = %d\n", a, b);
pthread_mutex_unlock(&m);
return NULL;
}
int main() {
pthread_t t1, t2;
pthread_mutex_init(&m, NULL);
pthread_create(&t1, NULL, &f, NULL);
pthread_create(&t2, NULL, &f, NULL);
pthread_join(t1, NULL);
pthread_join(t2, NULL);
return 0;
}
- Wie viele verschiedene Druckausgaben das Programm abgeben kann? (Die Antwort ist 3)
- Welchen Code können Sie an der leeren Zeile hinzufügen, um die verschiedenen Druckoptionen auf 1 zu reduzieren? (die Antwort ist
int a=0;
)
Wie soll ich zu diesen Antworten gekommen sein?
Was ist eine Druckoption? – mch
Dort ist ein Rennzustand auf "a". Die Variable 'a' kann nach Ausführung des Programms 1 oder 2 sein. Und ich wette, dass das etwas mit den mysteriösen Druckoptionen zu tun hat. –
Das Betriebssystem-Tag passt nicht wirklich zur Frage –