JAVA线程池ThreadPoolExecutor与阻塞队列BlockingQueue

池技术是典型的享元模式。

频繁使用new Thread来创建线程的方式并不太好。因为每次new Thread新建和销毁对象性能较差,线程缺乏统一管理。好在java提供了线程池,它能够有效的管理、调度线程,避免过多的资源消耗。优点如下:

  1. 重用存在的线程,减少对象创建、销毁的开销。
  2. 可有效控制最大并发线程数,提高系统资源的使用率,同时避免过多资源竞争,避免堵塞。
  3. 提供定时执行、定期执行、单线程、并发控制等功能。

线程池原理简单的解释就是会创建多个线程并且进行管理,提交给线程的任务会被线程池指派给其中的线程进行执行,通过线程池的统一调度、管理线程池的统一调度、管理使得多线程的使用更简单高效。

线程池负责管理工作线程,包含一个等待执行的任务队列。线程池的任务队列是一个Runnable集合,工作线程负责从任务队列中取出并执行Runnable对象。

任务队列一般就是BlockingQueue。

更多关于java并发的知识会在以后的博客中作为重点专题来讲解,这里暂时写这么多。

你可能感兴趣的:(JAVA线程池ThreadPoolExecutor与阻塞队列BlockingQueue)