Packt
Java Multithreading and Parallel Programming Masterclass
Packt

Java Multithreading and Parallel Programming Masterclass

Gain insight into a topic and learn the fundamentals.
Beginner level

Recommended experience

11 hours to complete
3 weeks at 3 hours a week
Flexible schedule
Learn at your own pace
Gain insight into a topic and learn the fundamentals.
Beginner level

Recommended experience

11 hours to complete
3 weeks at 3 hours a week
Flexible schedule
Learn at your own pace

What you'll learn

  • Analyze the fundamental building blocks of multithreaded applications to understand their advantages for Java developers.

  • Evaluate the performance impact of multithreading in applications, including OS and hardware implications.

  • Apply multithreading concepts in real-world projects and connect them with widely used frameworks.

Details to know

Earn a career certificate

Add to your LinkedIn profile

Recently updated!

September 2024

Assessments

4 assignments

Taught in English

See how employees at top companies are mastering in-demand skills

Placeholder
Placeholder

Earn a career certificate

Add this credential to your LinkedIn profile, resume, or CV

Share it on social media and in your performance review

Placeholder

There are 9 modules in this course

In this module, we will introduce you to the course, providing an overview of what you will learn and achieve. We will also share tips on how to make the most out of your learning experience and discuss the prerequisites and code resources needed to follow along effectively.

What's included

3 videos1 reading

In this module, we will delve into fundamental concepts of multithreading, including the differences between processes and threads. We'll also explore various execution models and explain Amdahl's Law, providing a solid foundation for understanding multithreading.

What's included

5 videos

In this module, we will cover the essentials of thread management, from creating threads to managing their priorities and states. You'll learn about handling thread exceptions, working with thread local variables, and addressing race conditions. Additionally, we'll dive into practical applications with a project on parallel text file processing.

What's included

7 videos1 assignment

In this module, we will explore the critical concept of thread synchronization. You'll learn about the synchronized keyword, locks, and various synchronization mechanisms, including semaphores and condition variables. Through practical examples, you'll gain a deep understanding of how to synchronize threads effectively.

What's included

7 videos

In this module, we will continue our exploration of thread synchronization with advanced techniques. You'll work on projects involving CountDownLatch, barriers, phasers, and Exchangers. We'll also address deadlocks, the volatile keyword, and culminate with a project simulating a MapReduce job.

What's included

8 videos

In this module, we will focus on the concept of thread reusability, emphasizing the importance of thread pools. You'll learn to use ThreadPoolExecutor, manage work queues, handle exceptions, and monitor performance. Additionally, we'll explore ForkJoinPools and the best practices for sizing thread pools.

What's included

10 videos1 assignment

In this module, we will introduce you to parallel algorithms, starting with Quick Sort and Binary Search. We'll discuss the efficiency and performance benefits of these parallel implementations. You'll also learn about naive and optimal methods for parallel matrix multiplication.

What's included

4 videos

In this module, we will tackle some of the most famous multithreading problems. You'll learn about and implement solutions for the Dining Philosophers, Readers-Writers, and Sleeping Barber problems. We'll also discuss the No-Starve Mutex problem, providing practical examples and solutions.

What's included

4 videos

In this module, we will apply multithreading concepts to real-world scenarios. You'll learn to monitor JVM performance, run asynchronous workloads with Spring Boot, and use RxJava for building parallel data pipelines. Finally, we'll demonstrate how to unblock UIs with multithreading in JavaFX.

What's included

6 videos2 assignments

Instructor

Packt - Course Instructors
Packt
371 Courses9,008 learners

Offered by

Packt

Recommended if you're interested in Software Development

Why people choose Coursera for their career

Felipe M.
Learner since 2018
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
Jennifer J.
Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
Larry W.
Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
Chaitanya A.
"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."

New to Software Development? Start here.

Placeholder

Open new doors with Coursera Plus

Unlimited access to 7,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription

Advance your career with an online degree

Earn a degree from world-class universities - 100% online

Join over 3,400 global companies that choose Coursera for Business

Upskill your employees to excel in the digital economy

Frequently asked questions