Java does not guarantee that Thread.sleep() will cause the thread to
sleep for exactly N number of milliseconds. Sometime the thread
can sleep for than N number of milliseconds.
In real-time processing we need precise time period for which a
thread should run or sleep.
Therefore the invocation of Thread.sleep() method is not
recommended for use in real-time processing.
https://www.digitalocean.com/community/tutorials/thread-sleep-java