Application to Animation
Animation requires controlled timing.
A thread that uses the sleep(int) method can handle timed updates to a display.
Multiple threads can concurrent tasks, but synchronization may become an issue.
Therefore a single animation thread (but separate from the main thread) often works best.
The main thread handles the user interface and other activities that are logically separate from those belonging to the animation.