Aims
To be able to create, execute, and terminate Threads.
To learn how Threads inter-communicate.
To understand their States and their Priorities.
To use synchronized methods and blocks in order to obtain locks on critical objects or sections of code.