【发布时间】:2017-10-13 10:09:11
【问题描述】:
创建新线程被认为是一项昂贵的任务。但是在 thread Pull 中,我们创建了许多线程并保持它们运行,即使没有任务可以执行。为什么保持空闲线程运行而不是在需要时创建线程并不更昂贵?虽然线程是空闲的,但它们必须占用固定内存、操作系统调度等资源。那么线程池如何更优化呢?
【问题讨论】:
创建新线程被认为是一项昂贵的任务。但是在 thread Pull 中,我们创建了许多线程并保持它们运行,即使没有任务可以执行。为什么保持空闲线程运行而不是在需要时创建线程并不更昂贵?虽然线程是空闲的,但它们必须占用固定内存、操作系统调度等资源。那么线程池如何更优化呢?
【问题讨论】:
因为创建和销毁线程的成本很高。如果你的线程是空闲的,那么你就没有很多工作要做。当你没有很多工作要做时,你不需要高效工作,当你确实有很多工作要做时,你需要高效工作。
【讨论】: