Java Concurrency with Project Loom
Dewire
High level description
Concurrency execution has always a way to increase the efficiency of software applications. It allows for multiple tasks simultaneously, more efficient use of hardware resources and increases the scalability, performance and responsiveness of the application. A majority of Java applications has traditionally used imperative programming due to the fact that Java has never been a high contender in concurrency programming. While Java has been able to do concurrency it has been based on platform-native threads, these threads requires high resource consumption, limited scalability and a complex thread management. Some frameworks have aimed to introduce concurrent models such as Mutiny and WebFlux, these are often called reactive frameworks. While these frameworks successfully increases the performance and resource consumption it comes with a high complexity cost.
To address these limitations, Project Loom introduced Java Virtual Threads in JDK 21 a feature that is meant to improve how Java handles concurrency. These are lightweight, managed by the JVM instead of the operating system and aim to reduce the resource consumption and complexities involved with thread management.
This thesis will do an study on Java Virtual Threads, the architecture, the advantages and disadvantages and impact on the software design. Research how Virtual threads perform to traditional thread models and reactive frameworks.
Who are we looking for?
Bachelor/Master of Science in Computer Science/Engineering
Purpose and Scope
- Architecture of Java Virtual Threads: Present the underlying architecture of virtual threads, their lifecycle, how they differ from platform-native threads and how they interact with the JVM scheduler and resource management.
-
Performance: Compare the performance of virtual threads with platform-native threads. Are there use-cases where a platform-native thread is preferred?
- Memory usage
- Thread creation overhead
- Context switching
- Throughput
- Scalability
- Impact on software design and developer experience: How does Virtual threads impact programming paradigms, patterns and best practices that benefit from Virtual threads? How does it affect a developers productivity in regards of code complexity, debugging and learning curve compared to imperative and/or reactive programming?
- Department
- Thesis
- Role
- Examensarbete
- Locations
- Sundsvall
About Knightec
Java Concurrency with Project Loom
Dewire
Loading application form
Already working at Knightec?
Let’s recruit together and find your next colleague.