第一种threading
这种如果一下启动的数量太多,会报错.
找了很多相关的资料,有说跟机器性能有关,有说改文件。
还有就是说跟Queue结合着用,反正我是用不来
上一个工具爆破mysql就是用的这种
import threading
t = threading.Thread(target=mysql_login, args=(host, user, pwd, port))
t.start()
第二种Pool
线程池,并发,根据提供的线程池大小启动
- from multiprocessing import Pool
- p = Pool(50)
- for host in hostlist:
- for user in userlist:
- for pwd in pwdlist:
- p.apply_async(mysql_login,args=(host, user, pwd, port))
- p.close()
- p.join()
第三种
类似Pool,不知道怎么解释
好像就是pp.join的时候,前面线程没执行完就等待
- import multiprocessing
-
- for host in hostlist:
- for user in userlist:
- for pwd in pwdlist:
- pp =multiprocessing.Process(target=mysql_login,args=(host, user, pwd, port))
- threads.append(pp)
- pp.start()
- pp.join()