JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris Studio 12.2:线程分析器用户指南
search filter icon
search icon

文档信息

前言

1.  什么是线程分析器?它有什么作用?

1.1 线程分析器入门

1.2 什么是数据争用?

1.3 什么是死锁?

1.4 线程分析器使用模型

1.4.1 检测数据争用的使用模型

1.4.1.1 校验代码以检测数据争用

源代码级别校验

二进制代码级别校验

1.4.1.2 基于校验后的应用程序创建实验

1.4.1.3 检查实验中是否存在数据争用

1.4.2 检测死锁的使用模型

1.4.2.1 创建用于检测死锁的实验

1.4.2.2 检查实验中是否存在死锁

1.4.3 检测数据争用和死锁的使用模型

1.5 线程分析器界面

2.  数据争用教程

3.  死锁教程

A.  线程分析器可识别的 API

B.  有用提示

1.3 什么是死锁?

死锁描述的是两个或多个线程由于相互等待而永远被阻塞的情况。导致死锁的原因有很多。线程分析器可检测由于不恰当使用互斥锁而导致的死锁。此类死锁通常发生在多线程应用程序中。

满足以下所有条件时,包含两个或多个线程的进程可能会进入死锁状态:

以下是一个死锁情况的简单示例:

死锁可分为两种类型:潜在死锁或实际死锁。潜在死锁不一定在给定的运行过程中发生,但可能发生在程序的任何执行过程中,具体取决于线程的调度情况以及线程进行锁请求的时间。实际死锁是在程序执行过程中发生的死锁。实际死锁会导致所涉及的线程挂起,但不一定会导致整个进程挂起。