Reactive and asynchronous applications are growing in popularity, but what is the best way to build them? This course teaches you how to apply the latest concurrency techniques to develop state of the art Java applications. With the rise of microservices and service oriented architecture (SOA), asynchronous concurrency is now critical to day-to-day Java development. This video, designed for software architects and intermediate- to advanced-level Java developers, begins by reviewing the differences between asynchronous and synchronous programming. It then looks at the problems Java programmers currently have when using different synchronous programming models before diving deep into non-blocking I/O, timeouts, circuit breakers, and the different approaches to concurrency.
- Discover the primary bottlenecks and pitfalls around programming synchronous Java applications
- Understand the benefits of working with asynchronous programming techniques
- Learn to write Java code that fits into a SOA/microservices communication pattern
- Gain experience programming event-driven, reactive code in Java
Richard Warburton is a software engineer, teacher, and Java Champion. He’s worked as a developer in such diverse areas as low latency trading systems, statistical analytics, static analysis, compilers, and network protocols. Author of Java 8 Lambdas (O'Reilly Media), Richard holds a PhD in Computer Science from The University of Warwick.
Raoul-Gabriel Urma is CEO of Cambridge Spark, a learning community for data scientists and developers in the UK. Co-author of Java 8 in Action (Manning Publications), Raoul has delivered over 100 technical talks at international conferences. He's worked for Google, eBay, Oracle, and Goldman Sachs, and holds a PhD in Computer Science from the University of Cambridge.
Table of Contents
- Introduction + Thread Pools and Blocking I/O 00:08:59
- The Problem with Blocking I/O 00:10:43
- Introduction to Non-Blocking I/O 00:12:09
- Using Non-Blocking I/O with Callbacks 00:03:11
- Refactoring to Non-Blocking I/O 00:02:58
- Composing Callbacks 00:03:34
- Composing Callbacks Exercise 00:05:15
- Why do we need Timeouts? 00:03:00
- Implementing Timeouts 00:02:27
- Retrying Failures 00:03:25
- Circuit Breakers 00:04:21
- Retry Exercise 00:03:14
- Summary 00:02:03
- Approaches to Concurrency 00:02:47
- Title: Asynchronous Programming in Java
- Release date: September 2017
- Publisher(s): O'Reilly Media, Inc.
- ISBN: 9781491990124