Finding Concurrency Bugs in Java

作者: David Hovemeyer

DOI:

关键词:

摘要: Because threads are a core feature of the Java language, widespread adoption has exposed much wider audience to concurrency than previous languages have. Concurrent programs notoriously difficult write correctly, and many subtle bugs can result from incorrect use synchronization. Therefore, finding techniques find is an important problem. Through development automatic static analysis tool, we have found significant number in widely used applications libraries. Interestingly, that race conditions abound concurrent programs; underuse synchronization rule rather exception. We also examples other kinds errors, suggesting programmers fundamental misconceptions about how correct multithreaded programs. This paper makes two main contributions. First, it describes simple effective at errors real Second, provides evidence misused Java, even written by experienced programmers.

参考文章(18)
Steven V. Earhart, UNIX programmer's manual Holt, Rinehart & Winston. ,(1986)
S. C. Johnson, Murray Hill, Lint, a C Program Checker ,(1978)
Nicholas Sterling, WARLOCK - A Static Data Race Analysis Tool. USENIX Winter. pp. 97- 106 ,(1993)
Stefan Savage, Michael Burrows, Greg Nelson, Patrick Sobalvarro, Thomas Anderson, Eraser: a dynamic data race detector for multithreaded programs ACM Transactions on Computer Systems. ,vol. 15, pp. 391- 411 ,(1997) , 10.1145/265924.265927
Phillip G. Armour, The five orders of ignorance Communications of The ACM. ,vol. 43, pp. 17- 20 ,(2000) , 10.1145/352183.352194
Allison Druin, Benjamin Bederson, Ann Weeks, Allison Farber, Jesse Grosjean, Mona Guha, Juan Hourcade, Juhyun Lee, Sabrina Liao, Kara Reuter, Anne Rose, Yoshifumi Takayama, Lingling Zhang, The International Children's Digital Library: Description and analysis of first use First Monday. ,vol. 8, ,(2003) , 10.5210/FM.V8I5.1050
S.V. Adve, K. Gharachorloo, Shared memory consistency models: a tutorial IEEE Computer. ,vol. 29, pp. 66- 76 ,(1996) , 10.1109/2.546611
David F. Bacon, Robert E. Strom, Ashis Tarafdar, Guava: a dialect of Java without data races conference on object-oriented programming systems, languages, and applications. ,vol. 35, pp. 382- 400 ,(2000) , 10.1145/353171.353197
Seth Hallem, Benjamin Chelf, Andy Chou, Dawson Engler, Checking system rules using system-specific, programmer-written compiler extensions operating systems design and implementation. pp. 1- 16 ,(2000) , 10.5555/1251229.1251230