这两天重写了代码丢失的线程库里的线程池;顺便想加上根据鸭梨来确定线程池内应保留多少线程.
以前的方法是:
--------------------------
线程池设一个下限值min和上限值max;
min为线程中最小常驻线程数.也就是说即使线程池当前没有任何事可干,仍然保留min个线程在池中备用.
max为线程上限,当有任务排入线程池准备处理而池中线程都为忙时, 最多可以扩充线程池中的线程数到max.
当一个任务完成后,线程会先查看队列里是否有任务可做,如果没有则检查当前线程数tc是否>min是的话则自
行销毁.
--------------------------
现在我想根据实际的请求繁忙程度来调整池中线程的数量.具体就是当一个线程完成任务检查没有任务可做
后,它应该怎么判断自己是否应该自行销毁呢?
自己想了好几种方法.比如单位时间内任务排入数,空闲线程与任务数之比之类的.感觉都不太合理.我对数学
统计啥的实在是头大.求一个好的方案.