
线程
文章平均质量分 80
Cherry_tly
这个作者很懒,什么都没留下…
展开
-
BlockingQueue简介及使用
本例介绍一个特殊的队列:BlockingQueue,如果BlockQueue是空的,从BlockingQueue取东西的操作将会被阻断进入等待状态,直到BlockingQueue进了东西才会被唤醒.同样,如果BlockingQueue是满的,任何试图往里存东西的操作也会被阻断进入等待状态,直到BlockingQueue里有空间才会被唤醒继续操作. 使用BlockingQueue的关键原创 2016-01-06 11:17:07 · 586 阅读 · 0 评论 -
Java多线程-并发协作(生产者消费者模型)
对于多线程程序来说,不管任何编程语言,生产者和消费者模型都是最经典的。就像学习每一门编程语言一样,Hello World!都是最经典的例子。 实际上,准确说应该是“生产者-消费者-仓储”模型,离开了仓储,生产者消费者模型就显得没有说服力了。 对于此模型,应该明确一下几点: 1、生产者仅仅在仓储未满时候生产,仓满则停止生产。 2、消费者仅仅在仓储有产品时候才能消费,仓空则等待。 3、当原创 2016-01-06 11:34:15 · 520 阅读 · 0 评论 -
ThreadPoolExecutor使用介绍
private static ExecutorService exec = new ThreadPoolExecutor(8, 8, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue(100000), new ThreadPoolExecutor.CallerRunsPolicy()); 一、简介 线程池类为 java.ut转载 2016-02-01 17:07:35 · 599 阅读 · 0 评论 -
CountDownLatch 控制多个线程执行顺序
有时候会有这样的需求,多个线程同时工作,然后其中几个可以随意并发执行,但有一个线程需要等其他线程工作结束后,才能开始。举个例子,开启多个线程分块下载一个大文件,每个线程只下载固定的一截,最后由另外一个线程来拼接所有的分段,那么这时候我们可以考虑使用CountDownLatch来控制并发。 CountDownLatch是JAVA提供在java.util.concurrent包下的一个辅原创 2016-10-27 16:45:22 · 752 阅读 · 0 评论