def parallelize(self, fn, number_of_threads=None):
"""
Parallelize a function call. Number of threads defaults to your cpu count + 1.
"""
number_of_threads = number_of_threads or (cpu_count() + 1)
def _inner():
with ThreadPoolExecutor(number_of_threads) as tpe:
tasks = [tpe.submit(fn, item) for item in self._items]
for future in as_completed(tasks):
try:
yield future.result()
except Exception as exception:
yield exception
return Slinkie(_inner())
评论列表
文章目录