import os
def file_generator(directory):
for root, dirs, files in os.walk(directory):
for file in files:
yield os.path.join(root, file)
# 使用生成器处理文件
file_gen = file_generator('/your_directory')
for file_path in file_gen:
# 处理文件的逻辑
print(f"Processing file: {file_path}")
def large_number_generator(n):
num = 0
while num < n:
yield num
num += 1
# 使用生成器处理大数字序列
gen = large_number_generator(1000000)
for num in gen:
# 处理数字的逻辑
if num % 100000 == 0:
print(num)
def task_generator():
for i in range(10):
yield f"Task {i}"
def process_task(task):
print(f"Processing {task}")
tasks = task_generator()
for task in tasks:
process_task(task)
import threading
import time
def task_generator():
for i in range(5):
time.sleep(1) # 模拟耗时操作
yield f"Task {i}"
def process_task(task):
print(f"Processing {task}")
def worker():
tasks = task_generator()
for task in tasks:
process_task(task)
# 创建并启动线程
thread = threading.Thread(target=worker)
thread.start()
thread.join()
3. 合理设置任务处理的时间间隔
如果任务处理过程中存在一些耗时操作,可以通过合理设置任务处理的时间间隔,避免长时间占用 CPU 资源,从而减少阻塞的可能性。例如,在生成器中使用 time.sleep() 函数来控制任务生成的速度。
import time
def task_generator():
for i in range(5):
time.sleep(1) # 控制任务生成的时间间隔
yield f"Task {i}"
def process_task(task):
print(f"Processing {task}")
tasks = task_generator()
for task in tasks:
process_task(task)