Introduction

The Java Concurrency API provides a lot of interfaces and classes to implement concurrent applications. They provide low-level mechanisms, such as the Thread class, the Runnable or Callable interfaces, or the synchronized keyword. They also provide high-level mechanisms, such as the Executor framework and the fork/join framework added in the Java 7 release, or the Stream framework added in Java 8, to process big sets of data. Despite this, you may find yourself developing a program where the default configuration and/or implementation of the Java API doesn't meet your needs.

In this case, you may need to implement your own custom concurrent utilities, based on the ones provided by Java. Basically, you can:

  • Implement an interface to provide the functionality defined by that interface, for example, the ThreadFactory interface.
  • Override some methods of a class to adapt its behavior to your needs. For example, overriding the onAdvance() method of the Phaser class that, by default, does nothing useful and is supposed to be overridden to offer some functionality.

Through the recipes of this chapter, you will learn how to change the behavior of some Java concurrency API classes without the need to design a concurrency framework from scratch. You can use these recipes as an initial point to implement your own customizations.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.141.24.52