Multithreading
Task is an instance of the Runnable interface.
Runnable
Thread is an object that facilitates the execution of a task, implements Runnable.