Python threading.start启动时间

Python threading.start启动时间,python,multithreading,Python,Multithreading,我试图制作一个小的负载测试脚本,并行运行整个操作堆栈,但我发现启动线程的方式似乎取决于线程中的工作量 也就是说,如果启动时间越长,线程所需的工作量就越大,那么有人可以看看下面的内容,让我知道我做错了什么 这是我如何开始我的线程: for i in range(0, 10): print i, time.strftime("%H:%M:%S", time.localtime()) t = Thread(target=make_request()) t.start() 这里

我试图制作一个小的负载测试脚本,并行运行整个操作堆栈,但我发现启动线程的方式似乎取决于线程中的工作量

也就是说,如果启动时间越长,线程所需的工作量就越大,那么有人可以看看下面的内容,让我知道我做错了什么

这是我如何开始我的线程:

for i in range(0, 10):
    print i, time.strftime("%H:%M:%S", time.localtime())
    t = Thread(target=make_request())
    t.start()
这里是make_请求()

基本上,我发现如果我增加make_request()的范围,每个线程的启动速度就会越慢。

您看到的部分(大部分)问题是,当您在
thread()
类中设置
target
参数时,您正在调用函数
make_request()
。这对您来说意味着,即使在您进入
Thread.start()
之前,您已经启动了您的函数,因为当您向Thread()注册回调时,您也调用了该函数(因此“启动时间”更长);实际上,您可以将
target
设置为
None
,因为函数返回
None
。所以Thread()并不是真正在线程中运行任何东西

更改它,使其看起来像:

for i in range(0, 10):
    print i, time.strftime("%H:%M:%S", time.localtime())
    t = Thread(target=make_request)
    t.start()
以下是一个很好的教程,可以帮助您:


如果我下面的答案是正确的,请不要忘记接受答案(单击“投票向上/向下”按钮下的复选标记,使其变为“绿色”)——这向可能遇到此问题的其他人表明,你已经得到了你需要/想要的答案,这会让我的代表性有一个小的提升(这让我感觉很好!=P)。这非常感谢,有时是一个人错过的小事情!
for i in range(0, 10):
    print i, time.strftime("%H:%M:%S", time.localtime())
    t = Thread(target=make_request)
    t.start()