我最近阅读了关于多线程和多处理之间差异的两个很棒的SO问题/答案。我不能说我理解我阅读的所有内容,但我想我的要点是。我认为学习更多的好方法是选择一个或另一个,然后将其用于我需要做的工作。
即,我有一堆文件夹,每个文件夹都有一堆mp3
文件。我想以相同的采样率和通道数对所有文件夹中的所有文件重新采样,然后将它们另存为.wav
文件。我想我可以为每个进程分配一个文件夹,直到所有文件夹都已转换。
我读过,多线程通常不会减少时间,因为线程很难并行运行。这就是为什么我倾向于此选项。
与文件多线程处理相比,多处理是否能为文件IO操作提供更快的结果?
这将取决于您要解决的问题中存在哪些依赖性。如果您可以分配一个几乎没有或完全没有依赖项(共享数据,共享变量等)的任务来独立运行,那么多处理将非常有用。只要启动流程所花的时间不会比运行它所需的时间长。(开始新流程很昂贵)
话虽如此,我认为为每个进程分配一个mp3转换任务会很好。只需确保您有什么东西可以监视哪些mp3文件已经被重新采样和转换,以防止重复的过程。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句