A process is a executing code in an environment. A process has one or more threads. The threads of a process share the process' resources -- including memory. (threads are called light-weight processes).

You start with the main thread. The main thread can create additional threads. There are two main ways to manage (create and control) threads:

  1. Direct control through Thread objects
  2. Through an executor.

One way to create a thread is to implement a runnable interface

For the safest use of threads in a GUI, create an event dispatching thread by using invokeLater GUI