Oreilly - Asynchronous Programming in Java
by Richard Warburton, Raoul-Gabriel Urma | Released September 2017 | ISBN: 9781491990117
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 applicationsUnderstand the benefits of working with asynchronous programming techniquesLearn to write Java code that fits into a SOA/microservices communication patternGain experience programming event-driven, reactive code in JavaRichard 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. Show and hide more Publisher resources Download Example Code
- 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
Show and hide more