[問題] multithread 程式中存取 STL 容器效能低
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
DEV C++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
Pthread
問題(Question):
原本想用thread加快程式的處理速度,不過實際寫出來效能還比原本慢很多
(資料都互相獨立)
給老師看過後,老師說可能是因為標準的C++的STL中會有non Thread safe的
問題,導致每條thread在存取STL資料時,其他條的thread中的STL資料都會被
Lock住,這樣所有的thread就因為等待時間而被慢,老師建議是改用Intel 的
TBB Library改寫
想請問有經驗的大家,STL真的會讓multithread的程式變慢嗎,其原因為何?
有用到的STL為vector , map , queue , string等
餵入的資料(Input):
預期的正確結果(Expected Output):
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版)
補充說明(Supplement):
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.250.43
※ 編輯: chengtony 來自: 140.113.250.43 (08/07 10:30)
→
08/07 10:36, , 1F
08/07 10:36, 1F
→
08/07 10:50, , 2F
08/07 10:50, 2F
推
08/07 12:00, , 3F
08/07 12:00, 3F
推
08/07 12:41, , 4F
08/07 12:41, 4F
→
08/07 12:55, , 5F
08/07 12:55, 5F
→
08/07 20:50, , 6F
08/07 20:50, 6F
推
08/07 23:25, , 7F
08/07 23:25, 7F
→
08/07 23:28, , 8F
08/07 23:28, 8F
→
08/07 23:42, , 9F
08/07 23:42, 9F
→
08/08 14:11, , 10F
08/08 14:11, 10F
→
08/08 14:12, , 11F
08/08 14:12, 11F