Liveness
Something finally happens
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
Instance variable analysis: allows to find methods that need not be synchronized
Splitting synchronization: partition of class into independent, non-interacting subsets