Automated Split Lock Refactoring for Java Programs

TAO Binxian,ZHANG Lei,QIAN Ju
DOI: https://doi.org/10.3778/j.issn.1673-9418.1209005
2013-01-01
Abstract:Many concurrent programs use too coarse synchronizations to protect the accesses of shared data structures. To optimize such synchronizations, people use refactorings, e.g., split lock refactoring, to gradually evolve the synchronization code for better parallelization. However, manually identifying the refactoring opportunities is difficult and code transformations by hand are error-prone. To address the problems of manual refactoring, this paper proposes an automated split lock refactoring approach for Java programs. It can automatically analyze the source code to find the refactoring opportunities and make proper code transformations. The experiment shows that the approach can find effective split lock refactoring opportunities in real projects and correctly transform the refactoring code. This indicates that the approach is helpful for concurrent program evolution.
What problem does this paper attempt to address?