@throws timeoutexception if the service has not reached the given state within the deadline
@param unit the time unit of the timeout argument
@param timeout the maximum time to wait
file : https_github_com_google_guava_git/guava/src/com/google/common/util/concurrent/Service.java