针对多线程并发程序中的数据竞争问题,本文提出了一种基于Java抽象语法树的数据竞争修复办法。首先利用抽象语法树对需要进行插锁的ast节点进行查找,这一过程包括:寻找发生数据竞争的变量所在方法;对发生数据竞争的变量所在的语句进行搜索;对需要加锁的位置进行确定。找到加锁位置后,对需要加锁的位置进行自动加锁操作,从而实现对数据竞争问题的自动修复。