使用有界队列: 若有新的任务需要执行,如果线程池实际线程数小于corePoolSize,则优先创建线程,若大于corePoolSize,则会将任务加入队列。若队列已满,则在总线程数不大于maximumPoolSize的前提下,创建新的线程,若线程数达到maximumPoolSIze,则执行拒绝策略 使用无界队列: 与有界队列相比,除非资源耗尽,否则无界队列不存在任务入队失败的情况,实际线程数大于corePoolSIze,任务直接进入队列等待
并行和并发的区别 并发:具有处理多个任务的能力,但不一定是同时进行。比如 吃饭时来了电话,停止吃饭去接电话 并行:具有同时处理多个任务的能力,是同时。比如 吃饭时来了电话,边吃饭边接电话
守护线程:专门服务于其他线程的线程
AbortPolicy:直接抛出异常组织系统正常工作 CallerRunsPolicy:只要线程池未关闭,该策略直接在调用者线程中,运行当前被丢弃的任务 DiscardOldestPolicy:丢弃最老的一个请求,尝试再次提交当前任务 DiscardPolicy:丢弃无法处理的任务,不给予任何处理 如果需要自定义拒绝策略可以实现RejectedExecutionHandler接口