Documentation Home
> Sun Studio 12:线程分析器用户指南
Sun Studio 12:线程分析器用户指南
Book Information
索引
文
线
易
前言
第 1 章 什么是线程分析器?它有何作用?
1.1 线程分析器入门
1.2 什么是数据争用?
1.3 什么是死锁?
1.4 线程分析器使用模型
第 2 章 数据争用教程
2.1 教程源文件
2.1.1 omp_prime.c 的完整列表
2.1.2 pthr_prime.c 的完整列表
2.1.2.1 omp_prime.c 和 pthr_prime.c 中的数据争用
2.2 创建实验
2.2.1 对源代码进行校验
2.2.2 创建数据争用检测实验
2.2.3 检查数据争用检测实验
2.3 了解实验结果
2.3.1 omp_prime.c 中的数据争用
2.3.2 pthr_prime.c 中的数据争用
2.4 诊断数据争用的原因
2.4.1 检查数据争用是否为误报
2.4.2 检查数据争用是否为良性
2.4.3 修复错误而不是修复数据争用
2.4.3.1 修复 omp_prime.c 中的错误
2.4.3.2 修复 pthr_prime.c 中的错误
2.5 误报
2.5.1 用户定义的同步
2.5.2 由不同线程再循环的内存
2.6 良性数据争用
2.6.1 用于查找素数的程序
2.6.2 用于验证数组值类型的程序
2.6.3 使用双检锁的程序
第 3 章 死锁教程
3.1 哲人进餐源文件
3.2 哲人进餐方案
3.2.1 哲人怎样发生死锁
3.2.2 为哲人 1 引入休眠时间
3.3 如何使用线程分析器查找死锁
3.3.1 对源代码进行编译
3.3.2 创建死锁检测实验
3.3.3 检查实验结果
3.3.3.1 线程分析器界面
3.3.3.2 er_print 界面
3.4 了解实验结果
3.4.1 检查出现死锁的运行
3.4.2 检查存在潜在死锁但仍可完成的运行
3.5 修复死锁并了解误报
3.5.1 使用令牌控制哲人
3.5.1.1 误报的报告
3.5.2 另一种令牌机制
附录 A 线程分析器用户 API
A.1 线程分析器的用户 API
A.2 其他可识别的 API
A.2.1 POSIX 线程 API
A.2.2 Solaris 线程 API
A.2.3 内存分配 API
A.2.4 OpenMP API
附录 B 线程分析器常见问题
B.1 常见问题
© 2010, Oracle Corporation and/or its affiliates