libpqは、PostgreSQL 7.0 現在、同時に同じPGconnオブジェクトを操作するスレッドがない、という条件下では、スレッドセーフです。特に、異なるスレッドから、同じ接続オブジェクトを通して同時に問い合わせを発行することはできません(同時に問い合わせを実行する必要がある場合は、接続は複数にしてください)。
PGresult オブジェクトは生成されると読み込み専用です。したがって、スレッド間を自由に渡ることができます。
推奨されない関数PQoidStatusや fe_setauthsvcはスレッドセーフではなく、またマルチスレッドプログラムで使用すべきではありません。PQoidStatusは PQoidValueに置き換えることができます。いかなる場合においても、fe_setauthsvcは呼び出すべきではありません。
crypt 暗号化方式を使用した Libpq は crypt オペレーティングシステム関数に依存します。この関数はスレッドセーフではない場合が多くあります。全てのプラットフォームでスレッドセーフな MD5 暗号化を使用する方が良いでしょう。