libpq는 기본적으로 재진입 및 스레드 안전입니다. 응용 프로그램 코드를 컴파일 할 때 특수 컴파일러 명령 줄 옵션을 사용해야 할 수도 있습니다. 스레드 가능 응용 프로그램을 구축하는 방법에 대한 정보는 시스템 문서를 참조하거나src/makefile.global
forpthread_cflags
andpthread_libs
. 이 함수는의 쿼리를 허용합니다.libpq의 스레드-안전 상태 :
하나의 스레드 제한은 두 스레드가 동일한 조작을 시도하지 않는다는 것입니다pgconn
동시에 물체. 특히 동일한 연결 객체를 통해 다른 스레드에서 동시 명령을 발행 할 수 없습니다. (동시 명령을 실행 해야하는 경우 여러 연결을 사용하십시오.)
pgresult
객체는 일반적으로 생성 후 읽기 전용이므로 스레드 사이에서 자유롭게 전달할 수 있습니다. 그러나, 당신이를 사용하는 경우pgresult
-에 설명 된 수정 기능메이저 토토 사이트 : 문서 : 12 : 33.11. 기타 메이저 토토 사이트또는PostgreSQL : 문서 : 12 : 33.13. 토토 사이트 추천, 동시에 동시 작업을 피하는 것은 귀하에게 달려 있습니다pgresult
,
더 이상 사용되지 않은 함수PQREQUESTCANCEL
andpqoidstatus
스레드 안전하지 않으며 멀티 스테이드 프로그램에서 사용해서는 안됩니다.PQREQUESTCANCEL
로 대체 할 수 있습니다pqcancel
. pqoidstatus
로 대체 할 수 있습니다pqoidvalue
.
응용 프로그램 내에서 Kerberos를 사용하는 경우 (내부 외에libpq), Kerberos 기능이 스레드 안전하지 않기 때문에 Kerberos 통화를 잠그는 것이 필요합니다. 기능 참조PQREGISTESTHREADLOCK
inlibpq소스 코드 사이에 협동 잠금 방식을 수행하는 방법libpq및 귀하의 응용 프로그램.