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 デッドロックとは

デッドロックとは、2 つ以上のスレッドが互いを待機しているために処理がまったく進まない状況を指します。デッドロックの原因は多数あります。スレッドアナライザは、相互排他ロックの不適切な使用によって生じたデッドロックを検出します。この種のデッドロックは、マルチスレッドアプリケーションでよく生じます。

2 つ以上のスレッドから成るプロセスは、次の条件がすべて揃うとデッドロックを生じることがあります。

デッドロック状況の簡単な例を次に示します。

デッドロックには潜在的デッドロックとデッドロックの 2 種類があります。潜在的デッドロックは、所定の実行で必ず起きるわけではありませんが、スレッドのスケジュールや、スレッドによって要求されたロックのタイミングに依存したプログラムの実行で起きる可能性があります。実デッドロックは、プログラムの実行中に発生するものです。実デッドロックでは、関係するスレッドの実行は滞りますが、プロセス全体の実行は滞ることもあれば、そうでないこともあります。