title: Guava RateLimiter running too often
body: <p>I am having a problem with Guava RateLimiter. I create the RateLimiter with RateLimiter.create(1.0) ("1 permit per second") and calls rateLimiter.acquire() on every cycle, but when I test run I get the following result:</p>
  
  <pre><code>Average: 1232.0 Diff since last: 2540
  Average: 1180.0 Diff since last: 258
  Average: 1159.0 Diff since last: 746
  Average: 1151.0 Diff since last: 997
  Average: 1144.0 Diff since last: 1004
  </code></pre>
  
  <p>Average is the number of milliseconds it sleeps on average and diff is the number of milliseconds passed since last print. On average it's okay, it does not permit my code to run more than once per second. But sometimes (as you can see) it runs more than once per second.</p>
  
  <p>Do you have any idea why? Am I missing something?</p>
  
  <p>The code that generates the above output:</p>
  
  <pre><code>private  int numberOfRequests;
  private Date start;
  private long last;
  private boolean first = true;
  private void sleep() {
      numberOfRequests++;
      if(first) {
          first = false;
          start = new Date();
      }
  
      rateLimiter.acquire();
  
      long current = new Date().getTime();
      double num = (current -start.getTime()) / numberOfRequests;
      System.out.println("Average: "+ num + " Diff since last: " + (current - last));
      last = current;
  }
  </code></pre>