python关于sub.Popen调用M3U8DL,加多线程的阻塞问题
本帖最后由 zdd157dd 于 2022-12-3 19:25 编辑写了很多bat文件,按数字命名,点一下就可以下载了为了提高下载速度,使用多线程Threading去调用Subprocess.Popen的打开M3U8DL的bat命令,即同时打开N个bat下载
由于硬件上限设置了多线程信号量Semaphore,开始速度很快,但慢慢的bat打开数会越来越少,最后会卡住应该就是线程阻塞了,是哪的问题呢,按理说多线程跟Popen里的子进程进度没什么关系吧,打开了就释放信号量了吧
大致代码如下
def M3U8(i):
Semaphore.acquire()
cmd=i.bat
subprocess.Popen(cmd,shell=Ture)
Semaphore.release()
if__name="__main__":
Semaphore(10)
for i in range(1,100):
t=threading.Thread(target=M3U8,args=(i,))
t.start()
页:
[1]