Congratulations - you've made it to the end of this course! 🎉
By this time, you've gotten to know a variety of approaches to making your software performant using the various mechanisms of Java's toolkit. As you work in different environments and see different projects, you are going to see the constructs we've covered from raw threads to CompletableFutures right through to Reactive Streams. And when you're designing, you'll be able to make an informed choice about which technology works best in your situation. Even better, you'll be able to benchmark and validate it. 💪
You now have all the information you need to:
All that’s left is to put your newfound skills to use!
But...Where do I go from here? What if I want to learn more?
There are many great frameworks to learn, including RxJava 2.0. If you want to build faster web applications, try Spring's WebFlux or the Vert.x framework. Read this great article on some of the other reactive frameworks out there.
There are also a number of great books which I recommend: 📚
The Art of Concurrency is one of my favorite reads and deeply impacted my thinking as a somewhat younger dev. This is less focused on Java so much as understanding how to design safe and performant concurrent systems.
The Well-Grounded Java Developer by Ben Evans has a fantastic chapter on concurrency. It's slightly old, but great none the less and one of my favorite books on the JVM.
Java Concurrency In Practice by Brian Goetz is now over fifteen years old and is a classic. It was written way before all those java.util.concurrency features we use today. It does, however, take a very practical view to help you understand how to build safe and well- designed concurrent systems. However, I would advise against using raw threads and building your software as it's done in the book.
There are many other great resources out there! Use these as a jumping off point to keep on learning. 😁
And before you go, don't forget to test what you've learned in this part via the end-of-part quiz!