面试题答案
一键面试实现思路
- 文件操作:使用文件对象以追加模式(
'a'
)打开日志文件,避免一次性加载整个文件到内存。 - 多线程同步:利用锁机制(如
threading.Lock
)来确保在多线程环境下对文件的追加操作是线程安全的,从而保证数据追加的一致性。
关键代码片段(Python 示例)
import threading
# 创建锁对象
file_lock = threading.Lock()
def append_to_log(data):
with file_lock:
with open('large_log_file.log', 'a') as f:
# 这里假设 data 已经是特定格式
f.write(data + '\n')
可以这样在多线程环境中调用:
# 创建多个线程并启动
threads = []
data_list = ['data1', 'data2', 'data3']
for data in data_list:
t = threading.Thread(target=append_to_log, args=(data,))
threads.append(t)
t.start()
# 等待所有线程完成
for t in threads:
t.join()