We may earn an affiliate commission when you visit our partners.
Jose Paumard

Reactive programming improves the throughput of microservices. This course explains how virtual threads and structured concurrency improve the reactive programming model, by writing simpler code that is easier to maintain and debug.

Read more

Reactive programming improves the throughput of microservices. This course explains how virtual threads and structured concurrency improve the reactive programming model, by writing simpler code that is easier to maintain and debug.

Designing a reactive system is complex and leads to code that is hard to test, hard to debug, and expensive to maintain. Virtual threads have been added to the Java platform to overcome these problems, and make it so that your simple imperative and blocking code is the right solution to design reactive systems. In this course, Concurrent Programming in Java with Virtual Threads, you will learn how virtual threads and structured concurrency can improve the reactive programming model. First, you will explore the patterns you can use to run your application on virtual threads. Then, you will learn how virtual threads are working under the hood, so that you can make informed decisions on where to use them in your application. Finally, you will see several applications use cases, built on virtual threads through the use of structured concurrency, to put everything in practice. When you are finished with this course, you will be fully equipped to improve your applications with virtual threads and structured concurrency, something you will need to improve the maintainability of your reactive and asynchronous code.

This course is no longer available. Find something similar by browsing:
Virtual Threads Structured Concurrency Java Reactive Programming

What's inside

Syllabus

Course Overview
Improving Reactive Programming with Virtual Threads
Introducing Virtual Threads
Using Virtual Threads to Increase Your Throughput
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Develops virtual threads and structured concurrency, both of which are increasingly used in reactive programming to create and maintain more efficient microservices
Examines how virtual threads and structured concurrency can be leveraged to build more maintainable and debuggable reactive systems
Taught by Jose Paumard, a recognized expert in reactive programming and virtual threads
Suitable as a standalone course, or as part of a curriculum to gain in-depth knowledge in reactive programming
Requires learners to come in with a foundational understanding of Java, and experience working with microservices
Assumes learners have experience with reactive programming and concurrency, although a basic introduction is provided

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Essential guide to java virtual threads

According to students, this course is an excellent resource for experienced Java developers looking to master concurrent programming with virtual threads and structured concurrency. Learners highlight the instructor's ability to explain complex concepts with remarkable clarity and the timely and highly relevant content. The hands-on demos and practical examples are frequently praised for solidifying understanding, effectively demystifying the shift from traditional threads. While generally well-structured and concise, some intermediate developers found the pace challenging, suggesting it assumes significant prior advanced concurrency knowledge. It's considered essential for writing more efficient and maintainable concurrent Java code.
Covers specific advanced topics like ScopedValues well.
"I found the sections on ScopedValues and how they replace ThreadLocals particularly insightful."
Helps simplify complex reactive and concurrent programming.
"This course brilliantly shows how virtual threads simplify things."
"The way virtual threads are explained makes them seem so much less daunting."
"It felt like the right level of depth for experienced Java developers. The shift from traditional threads was demystified."
Hands-on demos and practical examples are highly valuable.
"I especially appreciated the hands-on demos which really helped solidify my understanding."
"The practical examples were spot on. Covered everything I needed to know about using virtual threads and structured concurrency efficiently."
"Good demos though."
Content is up-to-date and highly relevant to modern Java development.
"The content on virtual threads is timely and incredibly relevant for modern Java development."
"A very useful course. The content is up-to-date and directly applicable."
"This is a must-take for any professional looking to optimize their concurrent Java applications."
Complex topics are explained with remarkable clarity.
"The instructor explains complex concepts like virtual threads and structured concurrency with remarkable clarity."
"The explanations are concise and well-structured. I particularly liked how the course demystified the 'under the hood' workings."
"The way virtual threads are explained makes them seem so much less daunting. I loved the balance of theory and practical implementation."
Some areas could benefit from more real-world or advanced scenarios.
"I felt some of the later examples, especially around structured concurrency, could have used a bit more real-world context or more complex scenarios."
"A bit more depth on performance tuning or potential pitfalls with very high concurrency might have been beneficial."
Requires prior advanced concurrency knowledge; pace can be fast.
"I found the pace a bit fast in places, and some explanations felt a little rushed, especially if you're not already deeply familiar with advanced concurrency."
"It assumes a lot of prior knowledge of advanced Java concurrency and reactive patterns. As an intermediate developer, I struggled."
"It's probably great if you're already an expert, but for intermediate developers, it might be a bit challenging without additional resources."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Concurrent Programming in Java with Virtual Threads with these activities:
Read Java Concurrency in Practice by Brian Goetz
Enhance your understanding of concurrency concepts and best practices in Java.
Show steps
  • Purchase and read the book.
  • Take notes and highlight important concepts.
  • Apply what you learned to your own projects.
Follow tutorials on virtual threads and structured concurrency
Expand your knowledge and skills by following guided tutorials.
Browse courses on Virtual Threads
Show steps
  • Search for and identify relevant tutorials.
  • Follow the tutorials step-by-step.
  • Implement what you learned in your own projects.
Perform virtual thread warm-up exercises
Reinforce your understanding of virtual threads and structured concurrency by working through practice drills.
Browse courses on Virtual Threads
Show steps
  • Solve coding problems using virtual threads.
  • Implement virtual threads in a small project.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Attend a workshop on virtual threads and structured concurrency
Engage with experts and learn about best practices for using virtual threads.
Browse courses on Virtual Threads
Show steps
  • Research and find a relevant workshop.
  • Register and attend the workshop.
  • Apply what you learned in your own projects.
Participate in a peer coding session on virtual threads
Collaborate with peers and exchange knowledge on virtual threads.
Browse courses on Virtual Threads
Show steps
  • Find a peer or group of peers who are interested in learning about virtual threads.
  • Schedule a regular meeting time.
  • Take turns presenting on different topics related to virtual threads.
Build a reactive microservice using virtual threads
Apply your knowledge of virtual threads and structured concurrency to build a practical application.
Browse courses on Microservices
Show steps
  • Design the architecture of your microservice.
  • Implement the microservice using Java and virtual threads.
  • Test and deploy your microservice.
Create a blog post or tutorial on virtual threads
Share your knowledge and understanding of virtual threads by creating educational content.
Browse courses on Virtual Threads
Show steps
  • Research and gather information on virtual threads.
  • Write and edit your blog post or tutorial.
  • Publish your content and promote it.
Mentor a junior developer in using virtual threads
Consolidate your knowledge by guiding a junior developer in using virtual threads.
Browse courses on Virtual Threads
Show steps
  • Find a junior developer who is interested in learning about virtual threads.
  • Schedule regular meetings to provide guidance and support.
  • Assign tasks and projects that allow the mentee to practice using virtual threads.

Career center

Learners who complete Concurrent Programming in Java with Virtual Threads will develop knowledge and skills that may be useful to these careers:
Java Developer
Java Developers are responsible for developing Java applications. This course can help Java Developers improve their ability to write reactive code, which can be essential for building responsive and scalable applications. The course covers topics such as virtual threads, structured concurrency, and ScopedValues, which can all be used to improve the performance of reactive applications. Also, this course is specifically offered on the Java programming language, which is highly relevant for Java Developers.
Full-Stack Developer
Full Stack Developers are responsible for designing, developing, and maintaining both the front-end and back-end of web applications. This course can help Full Stack Developers improve their ability to write reactive code, which can be essential for building responsive and scalable web applications. The course covers topics such as virtual threads, structured concurrency, and ScopedValues, which can all be used to improve the performance of reactive web applications.
Software Architect
Software Architects are responsible for designing and managing software systems. This course can help Software Architects improve their ability to write reactive code, which can be essential for building and maintaining responsive and scalable software systems. The course covers topics such as virtual threads, structured concurrency, and ScopedValues, which can all be used to improve the performance of reactive software systems.
Software Engineer
Software Engineers are responsible for designing, developing, and maintaining software applications. This course can help Software Engineers improve their ability to write reactive code, which can be essential for building responsive and scalable applications. The course covers topics such as virtual threads, structured concurrency, and ScopedValues, which can all be used to improve the performance of reactive applications.
Data Engineer
Data Engineers are responsible for designing and managing data pipelines. This course can help Data Engineers improve their ability to write reactive code, which can be essential for building and maintaining responsive and scalable data pipelines. The course covers topics such as virtual threads, structured concurrency, and ScopedValues, which can all be used to improve the performance of reactive data pipelines.
Network Engineer
Network Engineers are responsible for designing and managing computer networks. This course can help Network Engineers improve their ability to write reactive code, which can be essential for building and maintaining responsive and scalable networks. The course covers topics such as virtual threads, structured concurrency, and ScopedValues, which can all be used to improve the performance of reactive networks.
Security Engineer
Security Engineers are responsible for designing and managing security systems. This course can help Security Engineers improve their ability to write reactive code, which can be essential for building and maintaining responsive and scalable security systems. The course covers topics such as virtual threads, structured concurrency, and ScopedValues, which can all be used to improve the performance of reactive security systems.
Database Administrator
Database Administrators are responsible for designing and managing databases. This course can help Database Administrators improve their ability to write reactive code, which can be essential for building and maintaining responsive and scalable databases. The course covers topics such as virtual threads, structured concurrency, and ScopedValues, which can all be used to improve the performance of reactive databases.
Systems Engineer
Systems Engineers are responsible for designing and managing complex systems. This course can help Systems Engineers improve their ability to write reactive code, which can be essential for building and maintaining responsive and scalable systems. The course covers topics such as virtual threads, structured concurrency, and ScopedValues, which can all be used to improve the performance of reactive systems.
Web Developer
Web Developers are responsible for designing, developing, and maintaining websites and web applications. This course can help Web Developers improve their ability to write reactive code, which can be essential for building responsive and scalable web applications. The course covers topics such as virtual threads, structured concurrency, and ScopedValues, which can all be used to improve the performance of reactive web applications.
DevOps Engineer
DevOps Engineers are responsible for bridging the gap between development and operations teams. This course can help DevOps Engineers improve their ability to write reactive code, which can be essential for building and maintaining responsive and scalable systems. The course covers topics such as virtual threads, structured concurrency, and ScopedValues, which can all be used to improve the performance of reactive systems.
Cloud Architect
Cloud Architects are responsible for designing and managing cloud-based systems. This course can help Cloud Architects improve their ability to write reactive code, which can be essential for building and maintaining responsive and scalable cloud-based systems. The course covers topics such as virtual threads, structured concurrency, and ScopedValues, which can all be used to improve the performance of reactive cloud-based systems.
Quality Assurance Analyst
Quality Assurance Analysts are responsible for testing and evaluating software and systems. This course may help Quality Assurance Analysts improve their ability to test and evaluate reactive systems. The course covers topics such as virtual threads, structured concurrency, and ScopedValues, which can all be used to improve the performance of reactive systems.
Technical Writer
Technical Writers are responsible for writing documentation for software and systems. This course may help Technical Writers improve their ability to write documentation for reactive systems. The course covers topics such as virtual threads, structured concurrency, and ScopedValues, which can all be used to improve the performance of reactive systems.
Project Manager
Project Managers are responsible for planning, executing, and closing projects. This course may help Project Managers improve their ability to manage projects that involve reactive systems. The course covers topics such as virtual threads, structured concurrency, and ScopedValues, which can all be used to improve the performance of reactive systems.

Reading list

We've selected eight books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Concurrent Programming in Java with Virtual Threads.
Provides a comprehensive guide to Java programming. It covers topics such as object-oriented programming, design patterns, and concurrency. It good choice for developers who want to learn more about how to write effective Java code.
Provides a practical guide to reactive programming with RxJava. It covers topics such as reactive streams, operators, and schedulers. It good choice for developers who want to learn more about reactive programming with RxJava.
Provides a comprehensive guide to Java programming. It covers topics such as object-oriented programming, design patterns, and concurrency. It good choice for developers who want to learn more about how to write effective Java code.
Comprehensive guide to Java concurrency, covering topics such as threads, locks, synchronization, and concurrency patterns. It valuable resource for anyone who wants to learn more about Java concurrency.
Provides a comprehensive reference for Java programming. It covers topics such as object-oriented programming, data structures, and algorithms. It good choice for developers who want to learn more about Java programming.
Provides a concise and practical guide to concurrency. It covers topics such as thread safety, synchronization, and concurrency patterns. It good choice for beginners who want to learn more about concurrency.
Provides a catalog of design patterns for concurrent and networked software. It covers topics such as thread pools, synchronization, and fault tolerance. It good choice for software architects and designers who want to learn more about how to design concurrent and networked software.
Provides a beginner-friendly introduction to Java programming. It covers topics such as object-oriented programming, data structures, and algorithms. It good choice for beginners who want to learn more about Java programming.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser