def doDownload(i):
subprocess.run(['youtube-dl', '-o', f'{i[0]}.flv', f'{i[1]}'])
if __name__ == "__main__":
bvids = getvideoList()
with concurrent.futures.ThreadPoolExecutor(max_workers=4) as ex:
for item in bvids:
ex.submit(doDownload, item)
需要用到 subprocess.run()调用 shell 运行 youtube-dl
1
ArchieMeng 2021-12-22 16:46:50 +08:00 via Android
看你怎么定义多进程。从操作系统来看,你这就是多进程。
|
2
ClericPy 2021-12-22 22:04:17 +08:00
之前试过子进程开多了确实利用了多核, 有多 pid 用了多个 CPU. 虽然在父进程里确实也是多线程...
|
3
mingl0280 2021-12-23 05:02:37 +08:00 via Android
肯定是多进程+线程啊,对于父进程来说,线程只是一个符号,你在多线程地管理多个符号而已。
|
4
zepc007 2021-12-27 09:26:44 +08:00
多线程和多进程算是被你整明白了
|
5
nikan999 2021-12-28 03:15:15 +08:00
算 多线程+多进程
|