我有一个python脚本,可以触发多个到不同路由器的并行telnet连接来执行某些操作。效果很好。路由器列表在CSV文件中传递给python。在
另一方面,为了触发并行telnet连接,我使用线程。我的代码是这样开始的:oFile = csv.reader(open(FileCsv,"r"), delimiter=",", quotechar="|")
routers = list(oFile)
[. . .]
for i in range(len(routers)):
# We generate the config file
ip = routers[i][0]
CliLine=write_cliLine(routers[i])
# running routine
t = MiThread(i,CliLine,ip)
# wait random number of seconds between threads (0sec to 5sec)
time.sleep(random.randint(0,5))
t.start()
今天,线程的数量由CSV文件(for i in range(len(routers)))内的行数给出。我知道我可以通过限制for循环(for i in range(10))来限制线程的最大数量。我的问题是:假设我将线程数量限制为10,并且我的CSV文件中有15行,那么前10行肯定会被服务。我怎样才能把其他5个放在一边呢?一旦前10个路由器(线程)中的任何一个都完成了,我如何才能让这5行在以后得到服务?在
提前谢谢!在
卢卡斯