我正在學習C++ 11並遇到了線程問題。我的一般問題是:C++ 11互斥體是否與未使用C++ 11標準庫創建的線程兼容?C++ 11互斥體是否與不使用C++ 11創建的線程兼容?
我想安全地共享用C++ 11創建的線程和另一個由我無法控制的第三方庫創建的線程之間的信息。
例如,我的應用程序使用PortAudio,它爲音頻輸出創建自己的線程。我不確定它是使用pthreads還是OS特定的線程庫,但我確實知道PortAudio不是用C++ 11編寫的。我想在GUI線程(使用C++ 11線程)和使用互斥量的PortAudio線程之間安全地共享數據。
同樣,我可以使用C++ 11互斥鎖來同步QT QThreads和C++ 11線程嗎?
呃,什麼是互斥代碼的其他位使用 ?你不能指望用多個不同的互斥體來保護單個資源。必須只是一個互斥體。 –
目的是在不同類型的線程中使用單個互斥鎖。 – mjango
由於您使用的是特定於實現的線程,因此標準不會對您有所幫助。但是肯定的是,在任何運行這些庫的平臺上,互斥鎖在任何線程上都可以正常工作。 –