test_lock.py 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import multiprocessing
  2. import os
  3. import sys
  4. import time
  5. sys.path.append(os.path.abspath(os.path.dirname(__file__)) + '/../')
  6. from format_convert.utils import file_lock
  7. def run(a):
  8. while True:
  9. try:
  10. time2 = time.time()
  11. lock_file_sub = 'ocr'
  12. lock_file = os.path.abspath(os.path.dirname(__file__)) + "/" + lock_file_sub + ".lock"
  13. f = file_lock(lock_file)
  14. print(os.getpid(),"get file_lock " + lock_file + " time ", time.time()-time2)
  15. time2 = time.time()
  16. time.sleep(2)
  17. raise
  18. print(os.getpid(), "sleep", time.time()-time2)
  19. except Exception:
  20. print('RuntimeError')
  21. finally:
  22. f.close()
  23. if __name__ == '__main__':
  24. # 要处理的数据
  25. data = [1, 2, 3]
  26. # 创建进程池,指定进程数为 CPU 核心数
  27. with multiprocessing.Pool(processes=3) as pool:
  28. # 使用 map 方法分配任务并获取结果
  29. results = pool.map(run, data)
  30. # 输出结果
  31. # print(results)