我正在开发一个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