我想通過使用標準 C std::thread 庫在我的 C 應用程式中使用執行緒,但是你想使用信號量并且使用 C 20 的信號量是不可能的,我想知道是否 POSIX 信號量 <semaphore.h > 與 C STD 的執行緒兼容,或者我必須更改代碼才能使用 POSIX 執行緒
uj5u.com熱心網友回復:
C 標準庫將在 POSIX 系統上實作 std::thread 作為 pthread 的包裝器,因此使用 <semaphore.h> 會很好。信號量的實作通常與特定的執行緒介面無關,盡管 C 標準庫可能會同時使用 pthread 進行一些簿記。
因此,sem_wait()從執行緒(無論是 apthread_t還是 std::thread)呼叫將具有相同的效果,盡管僅使用 pthread 可能更好,因為它們將是最“兼容”的,尤其是因為您是無論如何只針對 POSIX 系統。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/334985.html
