草庐IT

threadpool

全部标签

java - FixedThreadPool 与 CachedThreadPool : the lesser of two evils

我有一个程序可以生成线程(~5-150)来执行一堆任务。最初,我使用FixedThreadPool因为thissimilarquestion建议它们更适合生命周期更长的任务,并且由于我对多线程的了解非常有限,我认为线程的平均生命周期(几分钟)“longliving”。但是,我最近添加了生成额外线程的功能,这样做使我超出了我设置的线程限制。在这种情况下,最好是猜测并增加我可以允许的线程数还是切换到CachedThreadPool这样我就不会浪费线程了?初步尝试它们,似乎没有区别,所以我倾向于使用CachedThreadPool只是为了避免浪费。但是,线程的生命周期是否意味着我应该选择一个

Java多线程(3):ThreadPool(上)

您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ 开完一趟车完整的过程是启动、行驶和停车,但老司机都知道,真正费油的不是行驶,而是长时间的怠速、频繁地踩刹车等动作。因为在速度切换的过程中,发送机要多做一些工作,当然就要多费一些油。而一个Java线程完整的生命周期就包括:1、T1:创建(启动)2、T2:运行(行驶)3、T3:销毁(停车)而T1+T3的开销(汽油或者时间)是要远大于T2的。所以,即使是性能再好的车,或者性能再好的计算机,如果经常有T1+T3的操作存在,那么显然是扛不住的。所以,为了解决这种因为切换不同线程导致的效率问题,Java推出了线程池技术。通过对已创建线程的合理重用,既

Java多线程(3):ThreadPool(上)

您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ 开完一趟车完整的过程是启动、行驶和停车,但老司机都知道,真正费油的不是行驶,而是长时间的怠速、频繁地踩刹车等动作。因为在速度切换的过程中,发送机要多做一些工作,当然就要多费一些油。而一个Java线程完整的生命周期就包括:1、T1:创建(启动)2、T2:运行(行驶)3、T3:销毁(停车)而T1+T3的开销(汽油或者时间)是要远大于T2的。所以,即使是性能再好的车,或者性能再好的计算机,如果经常有T1+T3的操作存在,那么显然是扛不住的。所以,为了解决这种因为切换不同线程导致的效率问题,Java推出了线程池技术。通过对已创建线程的合理重用,既