Korzystanie z OpenSSL w aplikacji wielowątkowej

Pisałem aplikację kliencką SOAP w C ++ na Ubuntu, używając OpenSSL do transportu HTTPS i pthreads do wątków. Mam wiele wątków - jeden centralny wątek akwizycji danych, który okresowo pobiera wątki robocze do tworzenia żądań SOAP za pośrednictwem kolejek chronionych mutexem.

Czytając dokumentację dla OpenSSL, którą znalazłemCzy OpenSSL jest bezpieczny dla wątków? w FAQ OpenSSL opisującym mechanizmy wymagane do zapewnienia bezpieczeństwa wątków podczas korzystania z OpenSSL. Zaimplementowałem to i wszystko działa dobrze.

Powód mojego pytania jest naprawdę trudny. Myślałem o wdrożeniu tej samej funkcjonalności, którą ma już moja aplikacja, ale zamiast używać wątków, utworzyłem 2 osobneAplikacje : Jeden dla wątku roboczego (z którego będzie uruchamianych wiele kopii) i drugi dla głównego wątku akwizycji danych. Następnie używałbym gniazd TCP do komunikacji między dwoma kolejkami chronionymi przed mutexami. To może być zły pomysł, ale to nie jest naprawdę ważne - to, co mnie mylę,czy musiałbym wdrożyć te same funkcje, które są wymagane do zapewnienia bezpieczeństwa wątków OpenSSL w tym drugim podejściu, czy nie?

Domyślam się, że nie musiałbym i mogliby być traktowani jako niezależni (rzeczywiście na pewno musi tak być, ponieważ wiele aplikacji używa OpenSSL), ale jaki jest tego powód?Czym różni się wieleAplikacje przy użyciu kodu biblioteki współdzielonej i wieluwątki udostępnianie tego samego kodu? Od kilku lat z powodzeniem piszę aplikacje wielowątkowe i niepokoi mnie to, że nie mogę znaleźć odpowiedzi na to pytanie.

questionAnswers(2)

yourAnswerToTheQuestion