The Java 2 platform includes a new package of concurrency utilities that are designed to simplify building concurrent applications. The concurrency utilities provide commonly used building blocks such as thread pools, asynchronous task execution frameworks, concurrent collections, atomic variables, locks, and condition variables. Using these utilities reduces programming effort, improves performance, reliability, maintainability and productivity when building concurrent applications compared to developing these components from scratch. The concurrency utilities package aims to make concurrent programs clearer, shorter, faster, more reliable, scalable, easier to write, read and maintain.