LanZouCloud-API
LanZouCloud-API copied to clipboard
在线程中使用,不会下载
trafficstars
我在线程中使用出现不下载的情况,使用的函数
def lanzoudown(self,url):
print("蓝奏云.地址:..%s" % url)
lzy = LanZouCloud()
code = lzy.down_file_by_url(url)
开启线程的代码
for l in downUrlList:
# 判断是不是蓝奏云
if "www.lanzous.com" in l:
t = threading.Thread(target=self.lanzoudown, args=(l,))
t.start()
如果不使用线程的话如下,直接使用会卡顿,如何正确的在线程中使用啊?
lzy = LanZouCloud()
code = lzy.down_file_by_url(url)
API 没有打算直接支持多线程,操作会阻塞当前的线程。如果你想使用多线程,最好创建一个类,继承 threading.Thread ,因为子线程一旦启动,主线程就没办法实时处理函数返回的错误。可以参考CMD版,v2.4.3 改成了多线程下载上传。如果不想搞得这么复杂,可以使用 ThreadPoolExecutor 。最好设置一个回调函数显示进度,不然你不知道子线程是否在下载,可能是下载的时候出了问题,进程结束了。