Here you can find the source of sleep(long msecs, boolean busy_sleep)
public static void sleep(long msecs, boolean busy_sleep)
//package com.java2s; //License from project: LGPL public class Main { /** Sleep for timeout msecs. Returns when timeout has elapsed or thread was interrupted */ public static void sleep(long timeout) { try {/*from www. j a v a 2 s . c om*/ Thread.sleep(timeout); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } } public static void sleep(long timeout, int nanos) { try { Thread.sleep(timeout, nanos); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } } /** * On most UNIX systems, the minimum sleep time is 10-20ms. Even if we specify sleep(1), the thread will * sleep for at least 10-20ms. On Windows, sleep() seems to be implemented as a busy sleep, that is the * thread never relinquishes control and therefore the sleep(x) is exactly x ms long. */ public static void sleep(long msecs, boolean busy_sleep) { if (!busy_sleep) { sleep(msecs); return; } long start = System.currentTimeMillis(); long stop = start + msecs; while (stop > start) { start = System.currentTimeMillis(); } } }