一图胜千言:
1、线程池的本质就是你给一个任务给它,它帮你异步执行,线程池里面是线程,要执行的是Runnable任务,别误以为Thread会识别Callable,其实只是FutureTask给Callable做了一层封装,实质还是Runnable任务。
2、我给一个任务给线程池,线程池会判断当前线程数x与核心线程数的数量y,如果x<y,则新建核心线程执行任务;如果x>y,看阻塞队列,如果阻塞队列可以放,则把任务放进去;否则准备新建非核心线程,如果当前线程数小于最大线程数,则新建非核心线程执行任务,否则执行拒绝策略。