多线程之线程池(六)
Java中线程池是运用最多的并发框架,几乎所有并发的程序都可以使用线程池来完成。阿里巴巴Java开发手册中明确指出: 线程资源必须通过线程池提供,不允许在应用中自行显示创建线程。 与文无关 在实际的生产环境中,线程的数量必须得到控制,盲目的大量创建线程对系统性能是有伤害的,合理使用线程好处: 减少在创建和销毁现场上所消耗的时间和系统资源 提高响应速度,无需创建可以直接运行 提高线程的可管理性。使用线程池可以进行统一分配,调优和监控,但是要做到合理利用线程池,必须对其原理了如指掌。 线程池工作原理 当向线程池提交一个任务的时候。 先看线程池中的核心线程是否有空闲的,如果有创建一个工作线程来执行任务。如果核心线程都在工作,那么进入下一步 判断任务队列是否满了,如果任务队列未满,则把任务存储到任务队列,执行下一步。如果满了,执行拒绝策略。 添加到任务队列之后,再判断核心线程是否有空闲的,如果没有空闲的,那么尝试创建新的非核心线程执行任务。 // 线程池处理步骤 public void execute(Runnable command) { if (command == null) throw...
