如何解决多线程还是多处理的常规文件操作?
我最近阅读了关于多线程和多处理之间差异的一些很棒的SO问题/答案。我不能说我理解我阅读的所有内容,但我想我的要点是。我认为学习更多的好方法是选择一个或另一个,然后将其用于我需要做的工作。
就是说,我有一堆文件夹,每个文件夹都有一堆mp3
文件。我想重新采样所有文件夹中的所有文件,使其具有相同的采样率和通道数,然后将它们另存为.wav
文件。我想我可以为每个进程分配一个文件夹,直到所有文件夹都已转换。
我已经读到,多线程通常不会减少时间,因为线程很难并行运行。这就是为什么我倾向于这个选项。
与多线程相比,多处理是否能为文件IO操作提供更快的结果?
解决方法
这取决于您要解决的问题中存在哪些依赖性。如果您可以分配一个几乎没有或完全没有依赖项(共享数据,共享变量等)的任务来独立运行,那么多处理将非常有用。只要启动流程所花的时间不会比运行它所需的时间长。 (开始新流程很昂贵)
话虽如此,我认为为每个进程分配一个mp3转换任务会很好。只需确保您有什么东西可以监视哪些mp3文件已经被重新采样和转换,以防止重复的过程。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。