In programming, concurrency is the composition of independently executing processes, while parallelism is the simultaneous execution of (possibly related) computations. Concurrency is about dealing with lots of things at once. Parallelism is about doing lots of things at once.” Source: blog.golang.org Concurrency is about structure, parallelism is about execution. As far as I know, concurrency has three levels: Creating and Managing Thread There are two options for creating a Thread in Java. Each thread is created in Java 8 will consume about 1MB as default on OS 64 bit. You can check via command line: java -XX:+PrintFlagsFinal -version | grep ThreadStackSize. To create and manage Thread in Java you can use the Executors framework. Java Concurrency API defines three executor interfaces that cover everything that is needed for creating and managing threads: Most of the executor implementations use thread pools to execute tasks.

Unit of Concurrency
Thread in Java
-** Executor: **launch a task specified by a Runnable object.
