【发布时间】:2017-08-04 15:36:37
【问题描述】:
我有一个循环,我一直在尝试加快速度。我注意到 Python 只使用单核,所以我导入了多处理包并设置了一个池。现在整个过程分布在多个内核上,但它们似乎被限制在 ~10 %。
这是预期/最佳的吗?或者有没有办法利用每个核心的更多?
代码:
from multiprocessing.dummy import Pool as ThreadPool
//...more code here...
pool = ThreadPool(os.cpu_count())
pool.starmap(getSubject, zip(range(1, Nsub)))
pool.close()
pool.join()
ps。在使用 Pool 之前,htop 会在 100 % 时显示一个内核,而在 ~0 % 时显示其他内核。
【问题讨论】:
标签: python multithreading multiprocessing threadpool python-multithreading