code: public static void sleep(int millis) {
  		long end = System.currentTimeMillis() + millis;
  		boolean interrupted = Thread.interrupted();
  		int remain = millis;
  		while (remain > 0) {
  			try {
  				Thread.sleep(remain);
  				break;
  			} catch (InterruptedException e) {
  				interrupted = true;
  				remain = (int) (end - System.currentTimeMillis());
  			}
  		}
  		if (interrupted) {
  			Thread.currentThread().interrupt();
  		}
  	}
docs: Sleep for some milliseconds like {@link Thread#sleep(long)} but ignore interruption<p>
  The <i>interrupted status</i> will not be cleared if current thread is interrupted during sleep