首先要明确线程池的意思,就是线程预先创建好放在一个池里面,使用后不会销毁 要区分任务和线程池,任务可以不断添加,但是线程池里线程的个数是固定的,当任务数超过线程数后,后面的任务需要等待有空闲的线程才会执行 所以不断添加任务没有关系,如果池中有50个线程,你添加100个任务同一时间也只会...    
java for循环中创建线程池
    ThreadPoolExecutor的构造方法如下:
corePoolSize    核心线程池大小    
maximumPoolSize    最大线程池大小    
keepAliveTime    线程池中超过corePoolSize数目的空闲线程最大存活时间;可以allowCoreThreadTimeOut(true)使得核心线程有效时间    
TimeUnit    keepAliveTime时间单位    
workQueue    阻塞任务队列    
threadFactory    新建线程工厂    
RejectedExecutionHandler    当提交任务数超过maxmumPoolSize+workQueue之和时,任务会交给RejectedExecutionHandler来处理    
可以通过设置maximumPoolSize的大小,来控制最大长度,超过长度以后,可以通过RejectedExecutionHandler,进行处理,或者可以在主线程catch住RejectedExecution,然后将主线程sleep一段时间,重新执行任务,如果还是Reject,继续sleep2017-12-26
首先要明确线程池的意思,就是线程预先创建好放在一个池里面,使用后不会销毁
要区分任务和线程池,任务可以不断添加,但是线程池里线程的个数是固定的,当任务数超过线程数后,后面的任务需要等待有空闲的线程才会执行
所以不断添加任务没有关系,如果池中有50个线程,你添加100个任务同一时间也只会执行50个任务,剩下的50个任务需要等待前面的任务执行完毕后继续执行
所以你的主线程原则上可以不断for,但是你总得有个结束点吧
2017-12-26