C++11 的 std::thread 是否与 POSIX 信号量兼容?
Is C++11's std::thread compatible with POSIX semaphores?
我想通过使用标准 C++ std::thread 库在我的 C++ 应用程序中使用线程,但是你想使用信号量并且使用 C++20 的信号量是不可能的,我想知道是否POSIX 信号量 与 C++ STD 的线程兼容,否则我必须更改代码才能使用 POSIX 线程
C++ 标准库将 std::thread 实现为 POSIX 系统上 pthreads 的包装器,因此使用 会很好。信号量的实现通常与特定的线程接口无关,尽管 C 标准库可能会使用 pthreads 同时进行一些簿记。
出于这个原因,从一个线程(无论是 pthread_t
还是 std::thread)调用 sem_wait()
将具有相同的效果,尽管只使用可能更好pthreads,因为它们将是最“兼容”的,尤其是因为无论如何您只针对 POSIX 系统。
我想通过使用标准 C++ std::thread 库在我的 C++ 应用程序中使用线程,但是你想使用信号量并且使用 C++20 的信号量是不可能的,我想知道是否POSIX 信号量
C++ 标准库将 std::thread 实现为 POSIX 系统上 pthreads 的包装器,因此使用
出于这个原因,从一个线程(无论是 pthread_t
还是 std::thread)调用 sem_wait()
将具有相同的效果,尽管只使用可能更好pthreads,因为它们将是最“兼容”的,尤其是因为无论如何您只针对 POSIX 系统。