Python多线程控制线程数量
多线程主要使用with threading.Semaphore()
来设置线程的最大数量
这是我扫描C段的一个线程控制例子
import requests
import threading
sem = threading.Semaphore(1000) #限制线程最大数量
def function(c,d):
with sem: #锁定线程的最大数量
ip="192.168.{c}.{d}".format(c=c,d=d)
print(ip)
url="http://{ip}".format(ip=ip)
try:
res=requests.get(url=url,timeout=10).text
print(url)
except:
pass
for c in range(1,255,1):
for d in range(1, 255, 1):
ts=threading.Thread(target=function,args=(c,d))
ts.start()