Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.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
Python 多线程性能开销_Python_Multithreading - Fatal编程技术网

Python 多线程性能开销

Python 多线程性能开销,python,multithreading,Python,Multithreading,所以基本上我创建了这个程序,为redis增加了价值。到目前为止,我得到了这个时间: real 0m27.759s 用户0m18.129s sys 0m5.580s 但是,当我尝试运行多个线程时: if __name__ == '__main__': try: for x in range(0, NUM_THREADS): Thread(None, startProgram, None, (NUM_HOSTS/

所以基本上我创建了这个程序,为redis增加了价值。到目前为止,我得到了这个时间:

real 0m27.759s
用户0m18.129s
sys 0m5.580s
但是,当我尝试运行多个线程时:

if __name__ == '__main__':
    try:
        for x in range(0, NUM_THREADS):
            Thread(None, startProgram, None,
                   (NUM_HOSTS/NUM_THREADS*x+1,
                    NUM_HOSTS/NUM_THREADS*(x+1))).start()
    except Exception as errtxt:
        print errtxt
我是通过
NUM\u线程
set ot
10
得到这个结果的:

real 0m32.642s
用户0m22.953s
系统0m11.473s
为什么我的程序运行速度较慢,线程较多


我正在运行Linux Ubuntu 11.04和Python 2.7.1。

结果取决于Python实现,cpython防止并行计算比顺序计算更快

考虑使用模块,该模块在自己的Python进程中执行每个线程,或者使用替代的无GIL Python实现,如和。

您可以使用它

以下是并行和的示例:


Eric,如果你清楚地说明你希望收到的输出,你可能会收到更好的响应。我没有收到任何输入,我唯一的问题是线程问题。我很抱歉没有提供足够的信息。对我来说,这似乎已经足够了。Python版本和操作系统也将有助于确定线程在这种特定情况下的行为。嘿,谢谢,让我们来了解一下真正的0m13.669用户0m13.793s sys 0m3.968SY您可能想更详细地描述一下并行Python如何避免GIL问题。事实上,如果不点击链接,你的答案根本就不能回答问题。