首先,有jdk自己定义的四种线程池,为什么还要自己设计线程池呢?
我个人认为是在不同项目场景下需要不同的线程池,比如i/o密集型和cpu密集型任务。cpu密集我们就要少线程,i/o密集我们就要尽可能多的线程。
再比如,高并发,但是每个任务执行时间都很短,那么就应该设计为少量的线程,防止线程上下文频繁切换浪费性能,如果是任务时间都很长,那么为了提高效率就要创建尽可能多的线程。
首先,有jdk自己定义的四种线程池,为什么还要自己设计线程池呢?
我个人认为是在不同项目场景下需要不同的线程池,比如i/o密集型和cpu密集型任务。cpu密集我们就要少线程,i/o密集我们就要尽可能多的线程。
再比如,高并发,但是每个任务执行时间都很短,那么就应该设计为少量的线程,防止线程上下文频繁切换浪费性能,如果是任务时间都很长,那么为了提高效率就要创建尽可能多的线程。