gpt4 book ai didi

python - Python线程启动开始时间

转载 作者:行者123 更新时间:2023-12-03 13:19:53 25 4
gpt4 key购买 nike

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

也就是说,如果我增加了启动所需的时间,线程需要做的工作量就会增加,有人可以看一下下面的内容,并让我知道我做错了什么。

这就是我启动线程的方式:

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

这是make_request()
def make_request():
#global request_count
for i in range(0, 1000):
data = {'poll':'testpoll','option':random.choice(vote_options)}
resp = requests.post("http://localhost:6223/create",data=data)
if resp.status_code == 200:
request_count += 1

基本上,我发现如果我增加make_request()中的范围,则每个线程启动得越慢。

最佳答案

问题的一部分(大部分)是,当您在target类中设置Thread()参数时,您正在调用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()
这是一个很好的教程,可能会对您有所帮助:

http://pymotw.com/2/threading/

关于python - Python线程启动开始时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25437953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com