我正在開發一個C++應用程序,使用pthreads庫。程序中的每個線程訪問一個公共的unordered_map。程序的運行速度比4個線程要慢。我評論了線程中的所有代碼,只留下了標記字符串的部分。單線程執行速度仍然更快,所以我得出結論認爲地圖不是問題。 之後,我在屏幕上打印出線程的ID,並且它們似乎是按順序執行的。C++ Pthreads - 多線程比單線程慢
在調用線程的功能,我有一個while循環,它在一個陣列,其大小是線程數創建線程(讓我們說「TN」)。每次創建線程時,我都會執行一個for循環來加入它們。 (在pthread_join)。雖然運行很多次(不僅僅是4次)。
什麼可能是錯的?
順序,而不是運行在運行您使用的是互斥訪問地圖? – tohava 2015-02-10 15:56:42
我的魔法8球說錯誤在第42行。[即不可能甚至猜測根據代碼可能或不可以做的部分的高級描述。] – 2015-02-10 15:58:05
慢多少?您是否在使用可以從多個線程中受益的體系結構? – odedsh 2015-02-10 15:58:43