Loading... # 多线程存数据不会数据丢失 ## 案例一、 ```python 这里只是简单的线程池 import os from concurrent.futures import ThreadPoolExecutor from time import perf_counter import time import threading as th lock=th.Lock() def write(text,path='re.txt'): lock.acquire() with open(path,'a') as fp: fp.write(text) lock.release() def make_test_txt(path='test_txt.txt'): with open(path,'w') as fp: for i in range(100): fp.write(str(i)+'\n') #os.remove('re.txt') make_test_txt() with open('test_txt.txt') as fp: texts=fp.readlines() print(len(texts)) t=perf_counter() pool=ThreadPoolExecutor(max_workers=2) pool.map(write,texts) pool.shutdown(wait=True) time.sleep(1) with open('re.txt') as fp: texts2=fp.readlines() print(len(texts2)) ``` ## 案例二、 ```python import threading as th lock=th.Lock() def make_test_txt(path='test_txt.txt'): with open(path,'w') as fp: for i in range(100): fp.write(str(i)+'\n') ``` 最后修改:2022 年 12 月 02 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏