摘要
多线程并发程序的广泛使用引发了更多的数据竞争问题,竞争检测对于提高软件质量具有重要意义。将竞争静态检测和静态切片分析结合起来,提出了一种基于类的Java数据竞争静态检测算法,该算法利用函数调用层次获得函数调用链,对类域进行分析,找出可能数据竞争,通过静态切片缩小程序分析范围,并结合数据竞争的必要条件,去掉不可能数据竞争。实例表明,该算法可用于指导修复程序中的竞争缺陷。
The widespread use of multithread concurrent programs induces more detrimental data race problems,race detection is very important for improving software quality.Combining data race static detection with static program slicing,a class-based data race static detection algorithm for Java multithread programs is proposed.The algorithm obtains function call-chains by using function calls,analyzes every field of a class,finds out possible data race,reduces the range of program analysis through static program slicing,and removes the impossible data race by considering the necessity of data race.An example demonstrates that the proposed algorithm can guide programmers to fix software data race defects.
出处
《计算机工程与科学》
CSCD
北大核心
2014年第2期233-237,共5页
Computer Engineering & Science
基金
国家自然科学基金资助项目(61272108)