C에서 공유 라이브러리를 쓰고 있습니다. C 함수는 스레드로부터 안전하지 않습니다. 모든 방법은 lib_handle
객체에 대한 포인터를 취C 라이브러리 스레드를 안전하게 만들기
struct lib_handle {
....
};
int lib_init(lib_handle **handle);
int lib_process(lib_handle *handle);
....
....
처럼
내 라이브러리 루틴 보인다. 모든 상태는이 구조 안에 저장됩니다. 전역 변수는 사용되지 않습니다.
각 스레드가 자신의 lib_handle
인스턴스를 생성하면 여러 스레드가 라이브러리 함수를 사용할 수 있다고 가정합니다. 각 스레드는 자체 핸들을 가지고 있으므로 everythibg가 작동해야합니다.
아직이 가정을 확인하지 않았습니다. 당신이이 디자인에 대해 어떻게 생각하는지 궁금합니다. 그리고 각 스레드가 자신의 핸들을 가지고 있기 때문에 라이브러리를 쓰레드 안전하다고 말할 수 있습니까?
도움이 될 것입니다.
이 라이브러리는 SQLite 이외의 라이브러리를 사용하지 않습니다. SQLite 자체는 스레드로부터 안전합니다. –
안녕하세요, +1, 드디어 합리적인 질문입니다. –