1.12. 线程特性

PostgreSQL 7.0 时 libpq 是线程安全的, --只要不是两个线程试图同时操作同一个PGconn对象. 实际上,你无法从不同的线程向同一个联接对象发出并发的查询. (如果你需要运行并行查询,请启动多个联接.)

PGresult对象在创建后是只读的,因此可以自由地在线程之间传递.

过时了的函数 PQoidStatusfe_setauthsvc 都是线程不安全的, 因此不应该在一个多线程的程序里面使用. PQoidStatus 可以由 PQoidValue代替.而我们觉得根本没有调用 fe_setauthsvc 的必要.

Libpq 客户端使用的 crypt 加密方法倚赖 crypt() 系统函数,它通常不是线程安全的. 我们最好使用 MD5 加密,它在所有平台上是线程安全的.