Practical Java concurrency with the Akka Actor Model

Learn how to avoid thread-safety issues, synchronization and blocking with a really practical hands-on course
Practical Java concurrency with the Akka Actor Model
File Size :
2.74 GB
Total length :
6h 55m



Matt Greencroft


Last update




Practical Java concurrency with the Akka Actor Model

What you’ll learn

Concurrent Java programming using the Actor Framework
How the Actor Model works and can be used as a better alternatives to Thread creation
How to use the core Akka libraries to build robust, thread-safe, concurrent applications

Practical Java concurrency with the Akka Actor Model


Basic Java knowledge
Some existing Java multi-threading programming is helpful but not essential
No knowledge of Akka or Scala is needed


This course will cover how to use the Actor Model provided by the Akka framework to build robust, thread-safe concurrent applications with Java.We’ll be leaving behind the traditional problems with multi-threaded programming, such as dealing with non-thread safe variables, deadlocks, thread interruptions and more. Akka gives us a completely different approach. Instead of creating threads, using synchronization, locks, semaphores and countdownlatches, we’ll learn how the actor model gives us a very different way to approach concurrent programming. Learning the actor model from scratch can be a challenge, so in this course we build up the knowlege step by step, meaning you’ll have no problems following along and understanding everything we do. And the course is full of practical real-world scenarios, so that you’ll be able to take what you learn and apply it to your own projects. Our main case study is that we’ll be building a basic blockchain mining application.Please note that although Akka is built in Scala, absolutely no Scala knowledge is needed for this course. This course covers Akka with Java and we won’t be writing any Scala code. It’s ideal for Java developers with some experience (although you certainly don’t need to be an expert). This course covers the newer Akka Typed API only.


Section 1: Chapter 1 – Introduction

Lecture 1 Introduction

Lecture 2 Course files

Lecture 3 How to get support for this course

Section 2: Chapter 2 – Why do we need Akka?

Lecture 4 An introduction to our first multi-threading example

Lecture 5 Basic concurrent programming in core Java

Lecture 6 Why concurrent programming in Java is difficult

Section 3: Chapter 3 – The Actor Model

Lecture 7 The concepts of the actor design pattern

Lecture 8 What is an actor?

Lecture 9 Why does this model work?

Section 4: Chapter 4 – Creating our first actor

Lecture 10 Setting up an Akka project

Lecture 11 Creating our first actor – constructors

Lecture 12 Creating our first actor – defining behaviors

Lecture 13 Instantiating actors and sending messages

Section 5: Chapter 5 – Going further with actors

Lecture 14 Expanding the receiveBuilder

Lecture 15 Creating child actors

Lecture 16 Actor paths

Lecture 17 Starting the big prime example

Lecture 18 Exercise 1 – creating actors

Lecture 19 Exercise 1 – walktrhrough

Section 6: Chapter 6 – Going further with messages

Lecture 20 Creating a custom message type

Lecture 21 Applying the custom message type to a behavior

Lecture 22 Using interfaces to support multiple message types

Lecture 23 Understanding message delivery guarantees

Section 7: Chapter 7 – Case Study 1 – Simulation example

Lecture 24 Introducing the case study

Lecture 25 Architecting the solution

Lecture 26 Implementing the case study

Lecture 27 Scheduling and timers

Section 8: Chapter 8 – Going further with behaviors

Lecture 28 Behaviors can change over time

Lecture 29 Exercise 2 – Changing behaviors

Lecture 30 Exercise 2 – walkthrough

Section 9: Chapter 9 – Actor lifecycles

Lecture 31 Actors stopping themselves

Lecture 32 Stopping child actors

Lecture 33 Actor lifecycle methods

Section 10: Chapter 10 – Logging

Lecture 34 Logging messages from actors

Lecture 35 Configuring log level output

Section 11: Chapter 11 – Case Study 2 – Blockchain mining example

Lecture 36 A simple introduction to blockchains

Lecture 37 Introducing the case study

Section 12: Chapter 12 -Unit Testing

Lecture 38 Creating a message handler that needs testing

Lecture 39 Unit testing with log messages

Lecture 40 Unit testing with response messages

Section 13: Chapter 13 – Akka interraction patterns

Lecture 41 The tell and forget and the request-response pattern

Lecture 42 The ask pattern

Lecture 43 Getting data out of akka

Section 14: Chapter 14 – Actor Supervision

Lecture 44 Introduction to multi-threaded blockchain mining

Lecture 45 Preparing our project to be ready for supervision

Lecture 46 Watching actors (supervision)

Lecture 47 Dealing with actors that crash

Lecture 48 Shutting down all the child actors

Section 15: Chapter 15 – Production standard techniques

Lecture 49 Exercise 3 – Ensuring immutable state

Lecture 50 Actors sending messages to themselves

Lecture 51 Stashing messages

Lecture 52 Using routers for simultaneous actor operations

Section 16: Chapter 16 – Next steps

Lecture 53 Other features of Akka that might be of interest

Lecture 54 Bonus lecture

Novice and experienced Java developers who need to enhance their concurrent programming skills.

Course Information:

Udemy | English | 6h 55m | 2.74 GB
Created by: Matt Greencroft

You Can See More Courses in the Developer >> Greetings from

New Courses

Scroll to Top