摘要 | 第4-5页 |
ABSTRACT | 第5页 |
第一章 绪论 | 第10-14页 |
1.1 研究背景与意义 | 第10页 |
1.2 国内外研究现状 | 第10-12页 |
1.3 本文研究内容 | 第12-13页 |
1.4 文章结构 | 第13-14页 |
第二章 并发程序重构模式与 Java 并发机制 | 第14-20页 |
2.1 并发程序重构模式 | 第14-15页 |
2.2 本文工作相关的重构模式 | 第15-16页 |
2.3 Java 并发程序线程及其同步机制 | 第16-19页 |
2.3.1 synchronized 关键字的语法形式 | 第16页 |
2.3.2 synchronized 关键字互斥效果 | 第16-18页 |
2.3.3 synchronized 关键字与内存可见性 | 第18-19页 |
2.4 本章小结 | 第19-20页 |
第三章 顺序代码转化为并发代码的并行化重构 | 第20-28页 |
3.1 研究动机 | 第20-21页 |
3.2 顺序无关容器的标注 | 第21-22页 |
3.3 循环可并行性识别 | 第22-26页 |
3.3.1 通过标注找出顺序无关的容器属性域和变量 | 第22-24页 |
3.3.2 通过插桩识别运行时顺序无关容器对象及其游标 | 第24页 |
3.3.3 运行时依赖跟踪及顺序无关容器相关依赖的过滤 | 第24-26页 |
3.4 可并行性分析及并行化重构案例 | 第26-27页 |
3.5 本章小结 | 第27-28页 |
第四章 基于同步需求分析的并发代码优化重构 | 第28-43页 |
4.1 研究动机 | 第28-31页 |
4.2 同步需求分析 | 第31-34页 |
4.2.1 基本假设 | 第31-32页 |
4.2.2 判定规则 | 第32-33页 |
4.2.3 分析算法 | 第33-34页 |
4.3 锁分解重构 | 第34-35页 |
4.4 保护区分解重构 | 第35-36页 |
4.5 属性域原子化重构 | 第36-37页 |
4.6 实验分析 | 第37-42页 |
4.6.1 实验对象 | 第38页 |
4.6.2 实验结果与讨论 | 第38-42页 |
4.7 本章小结 | 第42-43页 |
第五章 重构工具设计与实现 | 第43-52页 |
5.1 开发框架与平台 | 第43-45页 |
5.1.1 Eclipse LTK 重构框架 | 第43-44页 |
5.1.2 Eclipse JDT 语法树 | 第44页 |
5.1.3 Soot 字节码分析工具 | 第44-45页 |
5.2 工具设计与实现 | 第45-51页 |
5.2.1 基于顺序无关容器标注的动态循环级可并行性识别 | 第46-48页 |
5.2.2 基于同步需求分析的 Java 并发代码优化重构 | 第48-50页 |
5.2.3 工具 CODEREBUILDER 中其它重构功能 | 第50-51页 |
5.3 本章小结 | 第51-52页 |
第六章 总结与展望 | 第52-54页 |
6.1 总结 | 第52-53页 |
6.2 未来工作展望 | 第53-54页 |
参考文献 | 第54-58页 |
致谢 | 第58-59页 |
攻读硕士学位期间完成的论文以及学术成果 | 第59页 |