import os
import threading
from concurrent.futures import ThreadPoolExecutor
import time
def process_file(filename):
"""模拟文件处理"""
print(f"处理文件: {filename}")
time.sleep(1) # 模拟I/O操作
return f"已处理 {filename}"
def process_files_sequential(files):
"""顺序处理文件"""
results = []
for file in files:
results.append(process_file(file))
return results
def process_files_parallel(files):
"""并行处理文件"""
with ThreadPoolExecutor(max_workers=4) as executor:
results = list(executor.map(process_file, files))
return results
# 测试
files = [f"file_{i}.txt" for i in range(10)]
# 顺序处理
start = time.time()
process_files_sequential(files)
sequential_time = time.time() - start
# 并行处理
start = time.time()
process_files_parallel(files)
parallel_time = time.time() - start
print(f"顺序处理时间: {sequential_time:.2f}秒")
print(f"并行处理时间: {parallel_time:.2f}秒")
print(f"加速比: {sequential_time/parallel_time:.2f}x")