Name: | Description: | Size: | Format: | |
---|---|---|---|---|
4.06 MB | Adobe PDF |
Advisor(s)
Abstract(s)
A programação concorrente em Java é fundamental para o desenvolvimento de sistemas
modernos, especialmente em ambientes que exigem alta performance, escalabilidade e
eficiência no uso de recursos. Apesar da robustez das ferramentas e frameworks existentes,
desafios como race conditions, deadlocks e violações de atomicidade continuam a impactar
negativamente a fiabilidade e o desempenho dos sistemas. A presente dissertação analisa as
soluções disponíveis, identificando limitações em termos de precisão, escalabilidade e
facilidade de utilização.
Através de uma revisão do estado da arte, foram exploradas ferramentas como Java Pathfinder,
ThreadSanitizer, e frameworks como Executors Framework e Fork-Join Framework.
Paralelamente, propõem-se melhorias como a adoção de algoritmos de machine learning para
deteção preditiva de problemas, técnicas para mitigar state space explosion, e interfaces
simplificadas que promovam a acessibilidade e a integração com arquiteturas modernas.
Os resultados obtidos apontam para avanços significativos na gestão de concorrência, com
impacto positivo em áreas críticas como sistemas financeiros e plataformas de microservices.
Este trabalho destaca ainda a relevância da deteção proativa de erros e da escalabilidade em
sistemas distribuídos, propondo direções futuras que incluem a adaptação a tecnologias
emergentes.
Concurrent programming in Java is fundamental for the development of modern systems, particularly in environments requiring high performance, scalability, and efficient resource utilization. Despite the robustness of existing tools and frameworks, challenges such as race conditions, deadlocks, and atomicity violations continue to negatively impact system reliability and performance. This dissertation critically analyzes the available solutions, identifying limitations in terms of precision, scalability, and ease of use. Through a detailed review of the state of the art, tools such as Java Pathfinder, ThreadSanitizer, and frameworks like Executors Framework and Fork-Join Framework were explored. In parallel, improvements are proposed, including the adoption of machine learning algorithms for predictive problem detection, advanced techniques to mitigate state space explosion, and simplified interfaces that promote accessibility and integration with modern architectures. The results achieved point to significant advancements in concurrency management, with a positive impact on critical areas such as financial systems and microservices platforms. This work also highlights the relevance of proactive error detection and scalability in distributed systems, proposing future directions that include adaptation to emerging technologies such as serverless computing.
Concurrent programming in Java is fundamental for the development of modern systems, particularly in environments requiring high performance, scalability, and efficient resource utilization. Despite the robustness of existing tools and frameworks, challenges such as race conditions, deadlocks, and atomicity violations continue to negatively impact system reliability and performance. This dissertation critically analyzes the available solutions, identifying limitations in terms of precision, scalability, and ease of use. Through a detailed review of the state of the art, tools such as Java Pathfinder, ThreadSanitizer, and frameworks like Executors Framework and Fork-Join Framework were explored. In parallel, improvements are proposed, including the adoption of machine learning algorithms for predictive problem detection, advanced techniques to mitigate state space explosion, and simplified interfaces that promote accessibility and integration with modern architectures. The results achieved point to significant advancements in concurrency management, with a positive impact on critical areas such as financial systems and microservices platforms. This work also highlights the relevance of proactive error detection and scalability in distributed systems, proposing future directions that include adaptation to emerging technologies such as serverless computing.
Description
Keywords
Concurrent programming Java Race conditions Deadlocks Detection tools Atomicity violations Programação concorrente Ferramentas de deteção Violações de atomicidade