zdd157dd 发表于 2022-12-3 16:00

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]
查看完整版本: python关于sub.Popen调用M3U8DL,加多线程的阻塞问题