The Power of Multi-Threading in Java
This article describes the basics of Java Concurrency API, and how to assign work to be done asynchronously.A thread is the smallest unit of execution that can be scheduled by the operating system, while a process is a group of associated threads that execute in the same, shared environment.
You may also like: [DZone Refcard] Core Java Concurrency
We call “system thread” the thread created by the JVM that runs in the background of the application (e.g. garbage-collector), and a “user-defined thread” those which are created by the developer.