多线程
hsqingwei
这个作者很懒,什么都没留下…
展开
-
CompletionService优于ExecutorService
当使用ExecutrorService返回多个Futrue时,需要获取时futrue中的多个返回值,我们一般把它放在队列中去,假如先放入的线程并没执行完,后放入的线程执行完了,我们还需要等待前一个线程执行完才可以获取返回的值,为什么我们不能哪个线程先执行完就先获取哪个线程返回的值呢?CompletionService就实现下面我们可以用队列和CompletionService来对比一下p...原创 2019-03-27 15:17:48 · 180 阅读 · 0 评论 -
自定义实现线程池
大家都知道在多线程环境下采用线程池技术,可以降低资源的损耗,那这线程池工作机制是什么?我们可以根据自己想像的定义一个线程池,这里的缺陷是什么一 ,自定义线程池工具类,需要借助队列来实现1.首先线程池中线程个数,有默认线程数2.工作线程组,线程池启动时有默认线程数的线程运行(从阻塞队列中获取去线程并运行)3.线程任务,用户需要执行的线程任务4.BlockingQueue阻塞队列...原创 2019-03-27 15:39:44 · 6359 阅读 · 4 评论 -
DelayQueue的使用
DelayQueue:一个使用优先级队列实现的无界阻塞队列。支持延时获取的元素的阻塞队列,元素必须要实现Delayed接口。适用场景:实现自己的缓存系统,订单到期,限时支付等等。 方法 抛出异常 返回值 一直阻塞 超时退出 插入方法 add ...原创 2019-03-27 17:40:57 · 3585 阅读 · 2 评论