Multithreaded Programming in Java
Please rate the course
Course short description
Multithreading often remains a blind spot for developers. Many people know about executors, synchronized and volatile, but in practice they write outdated, slow and incorrect code.
Why does this happen?
Most of the courses and articles do not go beyond the Thread class and executors. There is a good book, Java Concurrency In Practice, but it is from 2005. Since then, new tools and new approaches to writing code have appeared.
Multithreading errors appear under high load. Most projects don’t have it, so the feeling of “it’s normal as it is” is created.
But a competent developer sees the bottlenecks of the system. Anticipates an error that will happen in a month and rationally uses computing resources.
During the course, I will talk in detail about multithreading from simple to complex. I will show best practices and main mistakes, examples from my experience and popular projects.
What you need for comfortable learning
- One year of Java development experience
- Basic knowledge of multithreading: Thread, Executors, volatile, synchronized
- GoF design patterns
- You know how to write web services in Spring, make database queries and write unit tests
- Knowledge of git
What we will do
< div data-editable="true" data-param="items/parts/text1/inner/text">
- Discuss each java.util.concurrent class in detail: pros, cons, best practices
- Study how everything works “under the hood”
- Spot interesting techniques in popular projects
- Look for errors and possible problems in the code of a real project
- Compare implementations among themselves
- Measure performance in different conditions
- Analyze interview questions
We will also touch on:
- Flags JVMs related to multithreading
- What and how to test
- Reactive libraries
- Virtual threads
What won't happen
- Algorithms
- Theory of parallel computing
- Distributed computing and transactions