有沒有人爲MicroBlaze編寫過多線程C++應用程序? Xilinx文檔指出:MicroBlaze上C++的線程安全
EDK提供的標準C庫不是爲多線程環境而構建的。像printf(),scanf()這樣的STDIO函數和像malloc()和free()這樣的內存管理函數是free()函數的常用示例,它們不是線程安全的。在多線程環境中使用C庫 時,必須使用適當的互斥技術來保護線程不安全的功能。
此外,MicroBlaze GCC報告線程模型爲「單一」。
如果我使用C++標準庫容器,這肯定是不安全的,正確的?
即使從賽靈思獲得這個簡單問題的答案,我也有一段時間,更不用說修復它了。看來這是賽靈思提供的構建系統的主要缺陷。
哇,這使得多線程C++在平臺上幾乎無法使用。如果你創建了自己的線程安全的內存分配器,鉤住'new'和'delete',並確保代碼在任何線程中運行,但是除了你自己的代碼之外沒有任何代碼觸發,你可以使用額外的線程來計算/處理目的。但基本上這使得多線程幾乎無法在平臺上使用。 –