Skip to Content
Reactive Systems in Java
book

Reactive Systems in Java

by Clement Escoffier, Ken Finnigan
November 2021
Intermediate to advanced
296 pages
7h 17m
English
O'Reilly Media, Inc.
Content preview from Reactive Systems in Java

Chapter 5. Reactive Programming: Taming the Asynchronicity

In the previous chapter, we introduced reactive systems and how they elegantly handle the challenges of distributed systems. Although never forget that nothing comes for free in the IT world. One of the characteristics of reactive systems is the use of nonblocking I/O. Nonblocking I/O improves the concurrency, responsiveness, and resource utilization of reactive applications. To fully benefit from nonblocking I/O, you must design and develop the code in a nonblocking manner, and that is a not-so-easy challenge.

This chapter explores approaches to writing nonblocking and asynchronous Java code such as callbacks and reactive programming. We also cover flow control and Reactive Streams, which is an essential part of modern reactive applications.

Asynchronous Code and Patterns

How does nonblocking lead to asynchronous code? Remember the design of nonblocking I/O from the preceding chapter. It allows using a few threads to handle concurrent network interactions. That particular architecture reduces memory consumption but also CPU usage. As a consequence, the application code gets executed by one of these I/O threads, and there are scarce resources. If your code unconsciously blocks one of these threads, it would reduce your application’s concurrency and increase the response time, as fewer threads are available to handle the requests. In the worst-case scenario, all the I/O threads get blocked, and the application cannot handle ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Java 8 in Action

Java 8 in Action

Alan Mycroft, Mario Fusco, Raoul-Gabriel Urma

Publisher Resources

ISBN: 9781492091714Errata Page