Python 多线程性能开销
所以基本上我创建了这个程序,为redis增加了价值。到目前为止,我得到了这个时间: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/
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 ot10
得到这个结果的:
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问题。事实上,如果不点击链接,你的答案根本就不能回答问题。