title: Thread sleep accuracy
body: <p>I have been experimenting with codes for various timing methods.  One way to create a delay is to run a thread using thread.sleep(millis), but it is very well stated that the time the thread "awakens" is not all that accurate and may be before or after this time.  Then I ran into the definition where there is an option to use thread.sleep(millis, nanos) where nanos gives "Extra nanosecond precision."</p>
  
  <p>My question is if thread.sleep() is not so accurate for milliseconds, what is the use of adding the extra nanos give us?  Does adding this value make the sleep method suddenly more accurate, like forcing the OS to be more strict or allowing higher priority when monitoring it?
  Also, .join() has the same option, I am supposing that the answer to the thread.sleep() part is similar to the .join() part. Thank you.</p>