【发布时间】:2021-06-26 01:42:21
【问题描述】:
我正在学习python中的多处理和线程来处理和创建大量文件,图在这里显示diagram
每个输出文件都依赖于所有输入文件的分析。
程序的单次处理需要相当长的时间,所以我尝试了以下代码:
(a) 多处理
start = time.time()
process_count = cpu_count()
p = Pool(process_count)
for i in range(process_count):
p.apply_async(my_read_process_and_write_func, args=(i,w))
p.close()
p.join()
end = time.time()
(b) 线程
start = time.time()
thread_count = cpu_count()
thread_list = []
for i in range(0, thread_count):
t = threading.Thread(target=my_read_process_and_write_func, args=(i,))
thread_list.append(t)
for t in thread_list:
t.start()
for t in thread_list:
t.join()
end = time.time()
我在具有 8 个内核的 Windows PC 上使用 Python 3.6 运行这些代码。但是Multiprocessing方法与单处理方法的时间差不多,而Threading方法大约是单处理方法的75%。
我的问题是:
我的代码正确吗?
有没有更好的方法/代码来提高效率? 谢谢!
【问题讨论】:
标签: python multithreading multiprocessing python-multithreading