Quiero usar hilos en mi aplicación C++ usando la biblioteca estándar C++ std::thread, sin embargo, quería usar semáforos y no era posible usar los semáforos de C++ 20, quería saber si los semáforos POSIX <semaphore.h > es compatible con los hilos de C++ STD o tengo que cambiar mi código para usar hilos POSIX
La biblioteca estándar de C++ implementará std::thread como contenedor sobre pthreads en sistemas POSIX, por lo que usar <semaphore.h> estaría bien. Los semáforos generalmente se implementan independientemente de la interfaz de subprocesamiento específica, aunque la biblioteca estándar de C puede llevar un poco de contabilidad al mismo tiempo usando pthreads.
Por esta razón, llamar a sem_wait() desde un subproceso (ya sea un pthread_t o un std::thread) tendrá el mismo efecto, aunque puede ser mejor usar pthreads, ya que serían los más "compatibles". especialmente porque de todos modos solo se dirige a los sistemas POSIX.