Python 为什么一个执行中的线程比另一个执行中的线程多?

Python 为什么一个执行中的线程比另一个执行中的线程多?,python,multithreading,Python,Multithreading,我有一个场景,我正试图把我的头绕过去 因此,我需要连接两个不同的服务器,每个服务器的响应时间不同(一个快,一个慢)。有一个for循环,它为两台服务器运行固定的时间,创建线程并启动它们。基本上,我向这些服务器发出多个异步请求,将它们的回复时间存储在一个列表中 代码如下: while time.time() - start_time < run_time: thread = Thread(target=thread_method, args=()) thread.start

我有一个场景,我正试图把我的头绕过去

因此,我需要连接两个不同的服务器,每个服务器的响应时间不同(一个快,一个慢)。有一个for循环,它为两台服务器运行固定的时间,创建线程并启动它们。基本上,我向这些服务器发出多个异步请求,将它们的回复时间存储在一个列表中

代码如下:

 while time.time() - start_time < run_time:

    thread = Thread(target=thread_method, args=())
    thread.start()
    thread_list.append(thread)

# make sure all threads finish before continuing
 for thread in thread_list:
    thread.join()
为每个服务器执行相同的脚本,使用相同的运行时间,给我X个项目,而第二个是X*3

我的想法是,在两种情况下,创建线程、启动线程然后移动到循环中的下一个线程可能会导致相同数量的项目,唯一的区别是一个脚本运行可能会晚一点完成,因为每个线程可能会晚一点结束(由于服务器的响应时间较长)


我真的需要一个解释来解释为什么我会得到这些结果。

亚历山大·拉维科维奇在评论中回答


亚历山大·拉维科维奇在评论中回答


向吉尔表示感谢。在Python中,一个线程的工作速度比多线程快。在Python中使用线程的唯一好处是异步行为。你必须使用Python中的进程来享受并行代码执行的乐趣。你能说出代码背后的原因吗?@AlexanderRavikovich真的吗?你有我能读到的资料的链接吗。我不是python开发人员,但是这个问题确实让我感兴趣。在Python中,一个线程的工作速度比多线程快。在Python中使用线程的唯一好处是异步行为。你必须使用Python中的进程来享受并行代码执行的乐趣。你能说出代码背后的原因吗?@AlexanderRavikovich真的吗?你有我能读到的资料的链接吗。我不是python开发人员,但是这个问题确实让我感兴趣。
start_time = time.time()
call_the_server()
end_time = time.time()

latency_list.append(start_time-end_time))