checking(エラー検査を行なう)」の三つの属性がある。pthread_mutex_initにてmutexattrを指定しない限り、デフォルトでは「fast(速い)」属性のミューテックスとなる。pthread_mutex_tを静的に初期化する場合は、PTHREAD_MUTEX_INITIALIZERを使用する。この場合、「fast(速い)」ミューテックスとして初期化される。「recursive(再帰的な)」ミューテックスとして初期化したい場合はPTHREAD_RECURSIVE_MUTEX_INITIALIZER_NPを使用する。checking(エラー検査を行なう)」ミューテックスとして初期化したい場合はPTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NPを使用する。ミューテックスに入るときはpthread_mutex_lock、出るときはpthread_mutex_unlockを用いる。pthread_mutex_lockの代わりにpthread_mutex_trylockをコールすると、ミューテックスがロックされている場合(他のスレッドがミューテックスに入っている場合)は、待機せず即座に呼び元に処理が戻る(このときエラーコードEBUSYを返す)。