スレッドアナライザは、マルチスレッドプロセスの実行中に発生するデータの競合を検出します。データの競合は次の場合に発生します。
1 つのプロセス 内の 2 つ以上のスレッドがメモリー上の同じ場所に同時にアクセスし、かつ
そのアクセスの少なくとも 1 つが書き込みアクセスで、かつ
どのスレッドも排他的ロックを使用して、そのメモリーへのアクセスを制御していない。
これら 3 つの条件が成立すると、アクセス順序が非決定的となり、アクセス順序により、実行のたびに演算結果が異なることがあります。害のない良性データ競合もありますが (たとえば、ビジー待ちのメモリーアクセスなど)、多くのデータ競合はプログラムのバグです。
スレッドアナライザは、POSIX スレッド API、Solaris スレッド API、OpenMP、Sun 並列指令、Cray 並列指令、あるいはそれらの組み合わせを使用して記述されたマルチスレッドプログラムに有効です。