Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ linux和windows之间相同多线程代码的处理效率不同?_C++_Linux_Windows_Multithreading - Fatal编程技术网

C++ linux和windows之间相同多线程代码的处理效率不同?

C++ linux和windows之间相同多线程代码的处理效率不同?,c++,linux,windows,multithreading,C++,Linux,Windows,Multithreading,我使用pthread编写了一个图像处理程序(c++),它在windows(Windows7,VS2008)下运行良好 但当我将这些代码移到Linux并重新编译(Redhat Enterprise server 6.2、eclipse 3.6.1)时,程序运行速度比windows慢得多 那么,这种现象有什么原因吗? 两个操作系统的硬件是相同的,它们都是服务器的节点,每个都有24个核心 当我在24个线程中运行程序时,CPU在Windows上的工作效率大约为99%,而在Linux上大约为20%。在wi

我使用pthread编写了一个图像处理程序(c++),它在windows(Windows7,VS2008)下运行良好

但当我将这些代码移到Linux并重新编译(Redhat Enterprise server 6.2、eclipse 3.6.1)时,程序运行速度比windows慢得多

那么,这种现象有什么原因吗?

两个操作系统的硬件是相同的,它们都是服务器的节点,每个都有24个核心

当我在24个线程中运行程序时,CPU在Windows上的工作效率大约为99%,而在Linux上大约为20%。在windows上,处理将在3分钟内完成,而在Linux上大约需要30分钟

在我的程序中,我只使用pthread_create()、pthread_join()来创建多线程。我没有用锁

我的程序代码太多了,我不能在这里发布。如果有人对此问题感兴趣,您可以给我发邮件:chen8729@gmail.com,我会把密码寄给你


谢谢你的关注

我不确定,但Linux通常在单独的线程上使用单独的进程。似乎在内核版本2.4之前,Linux单独的线程作为单独的进程工作,但在2.4之后,它作为线程工作。