Concurrent and Real-Time Programming in Java by Andrew Wellings & Andrew J. Wellings