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.

Enroll now

What's inside

Syllabus

Course Overview
Improving Reactive Programming with Virtual Threads
Introducing Virtual Threads
Using Virtual Threads to Increase Your Throughput
Read more
Introducing Structured Concurrency
Replacing ThreadLocals with ScopedValues

Good to know

Know what's good
, what to watch for
, 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

Save Concurrent Programming in Java with Virtual Threads to your list so you can find it easily later:
Save

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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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

Here are nine courses similar to Concurrent Programming in Java with Virtual Threads.
Concurrent Programming in Java
Most relevant
Taming Asynchronous .NET Code with Rx 3
Most relevant
Build Reactive MicroServices using Spring...
Most relevant
Java Multithreading, Concurrency & Performance...
Most relevant
Mastering Multithreading Programming with Go (Golang)
Most relevant
Learn Parallel Computing in Python
Most relevant
Modern C++ Concurrency in Depth ( C++17/20)
Most relevant
RxJS and Angular Signals Fundamentals
Most relevant
Implementing Concurrency in Rust
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 - 2024 OpenCourser