Java并发编程实践 目录并发编程 01—— ConcurrentHashMap并发编程 02—— 阻塞队列和生产者-消费者模式并发编程 03—— 闭锁CountDownLatch 与 栅栏CyclicBarrier并发编程 04—— Callable和Future并发编程 05—— Complet...
分类:
编程语言 时间:
2014-11-26 16:06:23
阅读次数:
308
Java并发编程实践 目录并发编程 01—— ConcurrentHashMap并发编程 02—— 阻塞队列和生产者-消费者模式并发编程 03—— 闭锁CountDownLatch 与 栅栏CyclicBarrier并发编程 04—— Callable和Future并发编程 05—— Complet...
分类:
编程语言 时间:
2014-11-25 18:14:38
阅读次数:
305
前言:最近在学习Java多线程,看到ImportNew网上有网友翻译的一篇文章《阻塞队列实现生产者消费者模式》。在文中,使用的是Java的concurrent包中的阻塞队列来实现。在看完后,自行实现阻塞队列。(一)准备 在多线程中,生产者-消费者问题是一个经典的多线程同步问题。简单来说就是有两种线....
分类:
编程语言 时间:
2014-11-20 01:18:38
阅读次数:
266
我们知道,对于一个队列而言,最主要的两个操作是添加元素(Add)和获取/删除元素(Get),之前文章中实现了一个linux下通用的阻塞队列BlockQueue,通过代码可以看出,为了保证在多线程环境下安全正确的运行,BlockQueue定义中的几个关键函数都进行了加锁保护,而锁住的对象是整个队列.....
分类:
其他好文 时间:
2014-11-19 17:54:52
阅读次数:
200
Callable、Future 简单应用 在Java5之前,线程是没有返回值的,常常为了“有”返回值,破费周折,而且代码很不好写。或者干脆绕过这道坎,走别的路了。现在Java终于有可返回值的任务(也可以叫做线程)了。可返回值的任务必须实现Callable接口,类似的,无返回值的任务必须Runnabl...
分类:
其他好文 时间:
2014-11-17 19:13:32
阅读次数:
234
阻塞队列是后台开发中多线程异步架构的基本数据结构,像python, java 都提供线程安全的阻塞队列,c++ 可能需要自己实现一个模板。
从性能考虑,自己没有使用STL的queue作为基本数据结构,而是使用循环数组作为基本数据结构,性能应该比queue高,省去了动态内存分配和回收。
确定就是,队列大小不可动态扩展,当时实际开发中,可以通过压力测试,配置合适的队列大小。
代码量非常小,可以进行工程开发直接使用。...
分类:
编程语言 时间:
2014-11-14 00:15:05
阅读次数:
500
Java并发编程实践 目录并发编程 01—— ConcurrentHashMap并发编程 02—— 阻塞队列和生产者-消费者模式并发编程 03—— 闭锁CountDownLatch 与 栅栏CyclicBarrier并发编程 04—— Callable和Future并发编程 05—— Complet...
分类:
其他好文 时间:
2014-11-13 16:19:13
阅读次数:
175
ArrayBlockingQueue是个有数组支持的有界的阻塞队列。该队列按照先进先出FIFO的原理对元素排序,插入新元素市场队列的尾部,获取新元素是操作队列的开始处。一旦见了建立了缓存区,就不能再增加其容量,试图从已满的队列中方式元素会导致操作阻塞;试图从空的队列中提取元素将导致阻塞。
提拱了四种方法,只有put(),take()才会发生阻塞。
下面是阻塞队列的例子。
packag...
分类:
编程语言 时间:
2014-11-09 19:35:51
阅读次数:
229
importjava.io.File;
importjava.util.concurrent.BlockingQueue;
importjava.util.concurrent.LinkedBlockingQueue;
importjava.util.concurrent.atomic.AtomicInteger;
/**
*多线程抓取数据的简单程序
*/
publicclassMultithreadFetcher{
/**阻塞队列的最大长度,防止内存..
分类:
编程语言 时间:
2014-11-06 20:19:21
阅读次数:
281
一. 阻塞队列和普通队列:
队列是一种基本的数据类型,其典型特征是先进先出。
阻塞队列和普通队列的区别在于:
当队列为空时,从队列中获取元素的线程会被阻塞,直到其他的线程往空的队列里插入新的元素;
当队列是满的时,往队列里添加元素的操作会被阻塞,直到其他的线程从队列移除一个或多个元素;...
分类:
其他好文 时间:
2014-10-31 10:11:13
阅读次数:
211