關於 Python3 ThreadPoolExecutor 的隊列大小

【背景】html

    截至 Python 3.6.6,concurrent.futures.ThreadPoolExecutor 中用的都是無·界隊列,在生產速度大於消費速度時,可能會耗光系統資源,但願找到一種方式避免這種狀況。python


【方案一】併發

  • 繼承 ThreadPoolExecutor,直接修改 _work_queue 爲有界隊列。ide

  • 優勢:簡單粗暴直接。工具

  • 缺點:修改了私有屬性。線程

  • 示例:https://stackoverflow.com/a/48327162代理


【方案二】code

  • 將任務分組,每組完成後再提交下一組。htm

  • 優勢:無需繼承,不改變私有屬性;能切實有效的避免資源耗費。blog

  • 缺點:組之間的任務是同步的,未充分利用線程,即便有剩餘任務也有空閒線程存在。

  • 示例:https://stackoverflow.com/a/49622149


【方案三】


【相關閱讀】


*** walker ***

相關文章
相關標籤/搜索