Multicore und Synchronisation
Welche Methode zur Vermeidung von Deadlocks in Programmen mit mehreren Sperren ist am gebräuchlichsten?
- ADie Reihenfolge, in der alle Threads Sperren erwerben, im gesamten Programm einheitlich festlegen
- BEine erworbene Sperre niemals freigeben
- CDie Zahl der Threads auf höchstens zwei beschränken
Antwort und Erläuterung anzeigen
Antwort: A. Die Reihenfolge, in der alle Threads Sperren erwerben, im gesamten Programm einheitlich festlegen
Ein Deadlock entsteht, wenn sich ein „Ring“ bildet, in dem Threads gegenseitig auf die Sperren des anderen warten. Halten sich beispielsweise alle an die Regel „stets erst A, dann B erwerben“, gibt es keinen Thread, der B hält und auf A wartet, und kein Ring entsteht. Weitere Methoden sind, die benötigten Sperren gesammelt auf einmal zu erwerben, oder bei Misserfolg die gehaltenen Sperren freizugeben und neu zu beginnen.