1 |
Something finally happens
|
2 |
Liveness failures
-
contention: a thread fails to run even though it is in a runnable state because another thread has taken over CPU
-
dormancy: a non-runnable thread fails to become runnable
-
deadlock: two or more threads block each other
-
premature termination: a thread is killed before it should be
|
3 |
Instance variable analysis: allows to find methods that need not be synchronized
|
4 |
Splitting synchronization: partition of class into independent, non-interacting subsets
|