Project Loom, or virtual threads, promised fast, lightweight user-space threads that are very inexpensive to block. While this is true, everything in life comes at a price. However, virtual threads let users to not care about it. It is the occupation of the underlying libraries that all our applications use. Issues that can inactive happen with virtual threads, specified as pinning, monopolization, or large thread-local objects, inactive present real-world problems many libraries inactive request to account for. In this session, we explain the virtual thread model execution and compare it to the event loop/reactive model utilized in Quarkus. We will besides dive into individual problems that virtual threads might encounter and show how you can verify that your code doesn’t run into them. By the end of the talk, you’ll realize these (from the user point of view invisible) issues that frequently manifest only under advanced loads.
GeeCON 2024: Martin Stefanko - Virtual threads - no pain, no gain
Project Loom, or virtual threads, promised fast, lightweight user-space threads that are very inexpensive to block. While this is true, everything in life comes at a price. However, virtual threads let users to not care about it. It is the occupation of the underlying libraries that all our applications use. Issues that can inactive happen with virtual threads, specified as pinning, monopolization, or large thread-local objects, inactive present real-world problems many libraries inactive request to account for. In this session, we explain the virtual thread model execution and compare it to the event loop/reactive model utilized in Quarkus. We will besides dive into individual problems that virtual threads might encounter and show how you can verify that your code doesn’t run into them. By the end of the talk, you’ll realize these (from the user point of view invisible) issues that frequently manifest only under advanced loads.








