线程同步-信号量(semaphore)生产者与消费者问题再思考在实际生活中,仅仅要有商品。消费者就能够消费,这没问题。但生产者的生产并非无限的。比如,仓库是有限的,原材料是有限的,生产指标受消费指标限制等等。为了进一步,解决好生产者与消费者问题,引入信号量进机制。信号量信号量(semaphore)是 ...
分类:
编程语言 时间:
2017-07-10 19:14:07
阅读次数:
139
本文翻译自LMAX关于Disruptor的论文,同时加上一些自己的理解和标注。Disruptor是一个高效的线程间交换数据的基础组件,它使用栅栏(barrier)+序号(Sequencing)机制协调生产者与消费者,从而避免使用锁和CAS,同时还组合使用预分配内存机制、缓存行机制(cache lin... ...
分类:
编程语言 时间:
2017-06-20 00:20:39
阅读次数:
331
1. HashMap 与HashTable , ConcurrentHashMap 2. 消息队列 3. 缓存机制,及缓存中间件 4. 哈希列表,存储空间,哈希算法, 碰撞, 解决方法 5. 生产者与消费者 6. 线程,线程安全,syncronized的锁块,锁对象 7. 索引,为什么需要索引,索引 ...
分类:
其他好文 时间:
2017-05-29 12:03:54
阅读次数:
175
这几天主要是狂看源程序,在弥补了一些曾经知识空白的同一时候,也学会了不少新的知识(比方 NIO)。或者称为新技术吧。 线程池就是当中之中的一个,一提到线程。我们会想到曾经《操作系统》的生产者与消费者。信号量,同步控制等等。 一提到池。我们会想到数据库连接池。可是线程池又怎样呢? 建议:在阅读本文前, ...
分类:
编程语言 时间:
2017-05-27 20:42:28
阅读次数:
255
什么是生产者消费者模式 在工作中,大家可能会碰到这样一种情况:某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类、函数、线程、进程等)。产生数据的模块,就形象地称为生产者;而处理数据的模块,就称为消费者。在生产者与消费者之间在加个缓冲区,我们形象的称之为仓库,生产者负 ...
分类:
其他好文 时间:
2017-05-16 23:29:15
阅读次数:
251
1 /*生产者与消费者第二次敲,本人表示很郁闷,以后要经常读这个 2 * Condition 将Object类中的监视器(wait notify notifyAll)分解成不同的对象。例如condition_pro.await(): 3 * condition_com.signal();这两个语句,... ...
分类:
其他好文 时间:
2017-05-03 17:14:17
阅读次数:
194
public class Customer extends Thread{ private Queue q; public Customer(Queue q){ this.q = q; } public void run(){ for(int i = 0; i < 10; i++){ int val ...
分类:
编程语言 时间:
2017-04-29 15:08:49
阅读次数:
198
虽然比较久,但是这套架构已经很成熟了,记录一下 一般数据流向,从“数据采集--数据接入--流失计算--数据输出/存储”<ignore_js_op> 1).数据采集 负责从各节点上实时采集数据,选用cloudera的flume来实现 2).数据接入 由于采集数据的速度和数据处理的速度不一定同步,因此添 ...
分类:
Web程序 时间:
2017-04-27 17:53:35
阅读次数:
294
python的threading.Thread类有一个run方法,用于定义线程的功能函数,可以在自己的线程类中覆盖该方法。而创建自己的线程实例后,通过Thread类的start方法,可以启动该线程,交给python虚拟机进行调度,当该线程获得执行的机会时,就会调用run方法执行线程。 每个线程一定会 ...
分类:
编程语言 时间:
2017-04-26 22:57:58
阅读次数:
206
什么是生产者/消费者模式? 某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类、函数、线程、进程等)。产生数据的模块,就形象地称为生产者;而处理数据的模块,就称为消费者。在生产者与消费者之间在加个缓冲区,我们形象的称之为仓库,生产者负责往仓库了进商品,而消费者负责从仓 ...
分类:
编程语言 时间:
2017-04-23 21:35:06
阅读次数:
272