atomic - deadlock

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

atomic - deadlock
Hi,

angenommen der gemeinsame Zustand mehrerer Threads besteht nur aus atomic-Klassen. Können dann noch Deadlocks auftreten?

Wenn ja, was wäre ein Beispiel?


Die notwendige Bedingung, dass iterative Anforderungen nicht erlaubt sind, hast du damit nicht eliminiert.

Betrachte den folgenden Pseudocode:

[Code=Java]
atomic bool A = false;
atomic bool B = false;

void thread1() {
while (A) {};
A = true;
while (B) {};
B = true;

// A und B angefordert
// Tue etwas

A = false;
B = false;
}

// Genau A und B andersherum anfordern
void thread2() {
while (B) {};
B = true;
while (A) {};
A = true;

// A und B angefordert
// Tue etwas

A = false;
B = false;
}[/Code]