java.util.concurrent.BlockingQueue

  • 方法
    • boolean add(E e)添加元素 满了抛异常
    • boolean offer(E e)添加元素 满了返回false
    • void put(E e)添加元素 满了等待
    • E take()获取并移除第一个元素 如果没有元素则等待
  • 常用实现类
    • ArrayBlockingQueue 有界
    • LinkedBlockingDeque 有界 或 无界
    • SynchronousQueue 有界 不能存元素

线程池Thread Pool

  • 使用线程池的好处
  1. 降低资源消耗.通过重复利用已创建的线程降低线程创建,销毁线程造成的消耗
  2. 提高响应速度.当任务到达时,任务可以不需要等到线程创建就能立即执行
  3. 提高线程的可管理性.线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,

    使用线程池可以进行同一的分配,调优和监控