Concurrent Programming by Stephen J. Hartley