为什么一次执行中的线程多于另一次执行?

时间:2015-06-24 21:35:06

标签: python multithreading

我有一个场景,我试图把我的脑袋包裹起来。

所以我需要连接两台不同的服务器,每台服务器都有不同的响应时间(一个是快速的,一个是慢的)。有一个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()

每个帖子都有这样的东西:

start_time = time.time()
call_the_server()
end_time = time.time()

latency_list.append(start_time-end_time))

使用相同的run_time为每个服务器执行相同的脚本,让我说出X项,而第二个X * 3.

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

我真的可以解释为什么我会得到这些结果。