Escrevendo código de exceção multithreaded-safe

Quais são as tensões entre multithreading e segurança de exceção em C ++? Existem boas diretrizes a serem seguidas? Um encadeamento termina devido a uma exceção não capturada?