ITKeyword,专注技术干货聚合推荐

注册 | 登录

JAVA线程池ThreadPoolExecutor与阻塞队列BlockingQueue

a910626 分享于 2016-07-01

推荐:线程池ThreadPoolExecutor与阻塞队列BlockingQueue

 从Java5开始,Java提供了自己的线程池。每次只执行指定数量的线程,java.util.concurrent.ThreadPoolExecutor 就是这样的线程池。以下是我的学习过程。 首先

2019阿里云双11返场狂欢继续,
地址https://www.aliyun.com/1111/2019/home

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

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

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

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

推荐:学习java多线程的笔记3-使用BlockingQueue阻塞队列来模拟两个线程之间的通信

今天看了《传智播客_张孝祥_Java多线程与并发库高级应用视频教程》之一,觉得使用BlockingQueue阻塞队列来模拟两个线程之间的通信这个东西很有意思,因为它使用

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

任务队列一般就是BlockingQueue。

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

推荐:多线程之阻塞队列ArrayBlockingQueue,BlockingQueue

ArrayBlockingQueue是个有数组支持的有界的阻塞队列。该队列按照先进先出FIFO的原理对元素排序,插入新元素市场队列的尾部,获取新元素是操作队列的开始处。一旦

池技术是典型的享元模式。 频繁使用new Thread来创建线程的方式并不太好。因为每次new Thread新建和销毁对象性能较差,线程缺乏统一管理。好在java提供了线程池,它能够有效的管理、调度线程,

相关阅读排行


用户评论

游客

相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。