A study and toolkit of CHECK-THEN-ACT idioms of Java concurrent collections

Periodicals(2015)

引用 14|浏览32
暂无评分
摘要
AbstractConcurrent collections are widely used in concurrent programs. However, programmers can misuse these concurrent collections when composing two operations where a check on the collection e.g., collection contains an element precedes an action e.g., inserting an element. Unless the whole composition is atomic, the program contains an atomicity violation bug. This paper presents an extensive empirical study of CHECK-THEN-ACT idioms of Java Oracle Corporation, Redwood, CA, USA concurrent collections. We analyze 28 widely used open-source Java projects comprising 6.4 million lines of code that use Java concurrent collections. We study the correct and incorrect use of idioms and the evolution of the programs with respect to idioms. Our tool, CTADETECTOR, detects and corrects misused idioms. CTADETECTOR discovered 60 bugs that were confirmed and fixed by developers. This shows that CHECK-THEN-ACT idioms are commonly misused in practice, and correcting them is important. Copyright © 2015John Wiley & Sons, Ltd.
更多
查看译文
关键词
concurrency and parallelism,empirical studies,program analysis,concurrent collections,atomicity violation,check-then-act
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要