Book Image

Java 9 Concurrency Cookbook, Second Edition - Second Edition

By : Javier Fernández González
Book Image

Java 9 Concurrency Cookbook, Second Edition - Second Edition

By: Javier Fernández González

Overview of this book

Writing concurrent and parallel programming applications is an integral skill for any Java programmer. Java 9 comes with a host of fantastic features, including significant performance improvements and new APIs. This book will take you through all the new APIs, showing you how to build parallel and multi-threaded applications. The book covers all the elements of the Java Concurrency API, with essential recipes that will help you take advantage of the exciting new capabilities. You will learn how to use parallel and reactive streams to process massive data sets. Next, you will move on to create streams and use all their intermediate and terminal operations to process big collections of data in a parallel and functional way. Further, you’ll discover a whole range of recipes for almost everything, such as thread management, synchronization, executors, parallel and reactive streams, and many more. At the end of the book, you will learn how to obtain information about the status of some of the most useful components of the Java Concurrency API and how to test concurrent applications using different tools.
Table of Contents (12 chapters)

Introduction

Usually, when you develop a simple, concurrent programming application in Java, first you create some Runnable objects and then the corresponding Thread objects to execute them. If you have to develop a program that runs a lot of concurrent tasks, this approach will present the following disadvantages:

  • You will have to implement all of the code-related information to manage Thread objects (creating, ending, and obtaining results).
  • You will have to create a Thread object per task. Executing a huge number of tasks can affect the throughput of the application.
  • You will have to control and manage the resources of the computer efficiently. If you create too many threads, you could saturate the system.

Since Java 5, the Java concurrency API provides a mechanism that aims to resolve these problems. This mechanism is called the Executor framework and is around the Executor interface, its subinterface ExecutorService...