我写了个每 50 秒自动登陆查询多个 ID 相关信息的代码,用到了多线程,每次执行前,都清空了一次多线程列表,thread_list = [],为何子线程执行后,print 出来的线程 ID 名一直是累加的,就是
thread - 1,
thread - 2,
………………
thread - 1000
一直是这样加下去,而不是每 50 秒恢复一次。这是不是代表服务器同时打开了这么多线程呢?请问如何真正清空线程,让服务器只执行真正用到的 10 个线程。
代码写得较粗糙,恳请各位帮优雅优化一下,感谢
import threading
import time
import requests
from threading import current_thread
def autocheck():
while True:
bktels = []
thread_list = []
bktels = ['ID1','ID2','ID3','ID4','ID5','ID6','ID7','ID8','ID9','ID10']
for n in bktels:
th = threading.Thread(target=getPID, args=(n,))
thread_list.append(th)
for t in thread_list:
t.start()
for t in thread_list:
t.join()
time.sleep(50)
def getPID(n):
threada = threading.current_thread()
str2 = ','.join('%s' %id for id in n)
print (threada.getName() +' ID:'+str2)
url = '
http://127.0.0.1/login.php?id=' + str2
html=requests.get(url)
print html.text
autocheck()