目录
在处理本地文件时,我们常陷入一个矛盾:单线程顺序处理虽然逻辑简单,但面对海量文件时效率低下;多线程并行处理虽然能提速,却容易因为资源竞争导致程序崩溃。本文将通过构建一个支持异步队列调度与多线程任务池的文件处理器,展示如何优雅地解决这个难题。
理解问题本质:I/O密集型任务的困境
假设我们要处理10万个图片文件,每个文件需要执行三个操作:读取元数据、生成缩略图、写入备份目录。如果用单线程顺序处理,总耗时将是单个文件处理时间乘以10万。更糟糕的是,在等待磁盘I/O时,CPU会处于闲置状态,造成资源浪费。
多线程看似解决方案,但直接创建10万个线程显然不现实。线程创建销毁的开销、线程间同步