RabbitMQ中,所有生产者提交的消息都由Exchange来接受,然后Exchange按照特定的策略转发到Queue进行存储 RabbitMQ提供了四种Exchange:fanout,direct,topic,header header模式在实际使用中较少,本文只对前三种模式进行比较。 性能排序: ...
分类:
其他好文 时间:
2016-05-24 00:16:03
阅读次数:
162
经典的消费者和生产者的的实现: 注意事项: 1:在循环里面用wait(),因为当线程获得了锁,但是有可能还没有满足其他条件: 2:公用的缓冲池要用锁机制: 执行结果是: ...
分类:
编程语言 时间:
2016-05-24 00:11:06
阅读次数:
195
之前讲的消费者互相可以把队列中的消息全部读取,但是不是读完整的所有信息 那么采用订阅模式就行,这就是微信公众号的模式, 比如10个人订阅了我的公众号"BeJavaGod",当我发送一条消息的时候, 那么这10个人都能收到我的消息并且查看,比如本条消息,对吧? 生产者制造消息发送给交换机X,而不是发送 ...
分类:
微信 时间:
2016-05-22 20:06:40
阅读次数:
323
上篇文章讲了简单队列的使用,这其实就是RMQ给的demo,实际并没有什么用 本篇讲讲工作模式队列,也称之为任务队列 一个生产者发布了多条消息,消费者A可以接受消息,接受消息后该消息就消除,消费者B可以接受其他消息 使用场景,一些数据库操作比较缓慢的话可以分别给多个接口调用,降低压力,或者抢单场景也能 ...
分类:
其他好文 时间:
2016-05-22 15:19:33
阅读次数:
149
推荐高洪岩的《Java多线程编程核心技术》,虽然很多代码都是纯粹为了炫耀技术,但看完之后再也不怕被多线程问倒了 随笔提一句,前面看了那多章同步代码块的内容,后面却发现lock完全可以取代。这本书在我看来可以砍掉一半,直接用Lock就好了。 问题1:用Java写代码来解决生产者——消费者问题。 使用l ...
分类:
编程语言 时间:
2016-05-20 00:55:13
阅读次数:
175
实现Runnable接口子覆盖接口中的run方法通过Thread类创建线程,并将实现了Runnable接口的子类对象作为参数传递给Thread类的构造函数Thread类对象调用start方法开启线程线程的启动得用start方法导致安全问题的出现的原因多个线程现延迟线程随机性线程安全问题在理想状态下,不容..
分类:
编程语言 时间:
2016-05-19 19:37:31
阅读次数:
151
RabbitMQ学习和使用RabbitMQ介绍MQ全称Message Queue 消息队列,RabbitMQ是基于AMQP(高级消息队列协议)实现的。消息队列通常用以应用之间相互通信,解决同步问题。MQ是典型的生产者消费者模型,RabbitMQ最常用的三种模式是点对点模式、发布订阅模式、广播模式。RabbitMQ is a message-queueing software called a mes...
分类:
其他好文 时间:
2016-05-18 19:28:41
阅读次数:
234
1.5辆汽车过山洞,依次经过山洞。每辆车通过山洞花费10秒,使用多线程实现。2.用多线程模拟蜜蜂和熊的关系。蜜蜂是生产者,熊是消费者。蜜蜂生产蜂蜜是累加的过程,熊吃蜂蜜是批量(满100吃掉)的过程。生产者和消费者之间使用通知方式告知对方。注意不能出现死锁的现象。1.5辆..
分类:
编程语言 时间:
2016-05-17 20:01:45
阅读次数:
294
用两个经典java笔试题来理解。 一。创建两个线程,分别打印100以内的偶数和奇数(不包含线程安全) 二。生产者(Productor)将产品交给店员(Clerk),而消费者(Customer)从店员处取走产品,店员一次只能持有固定数量的产品(比如:20),如果生产者试图生产更多的产品,店员会叫生产者 ...
分类:
编程语言 时间:
2016-05-17 09:49:41
阅读次数:
214
1.多线程-线程间通信-多生产者多消费者问题多生产者和多消费者。等待唤醒机制。产生了两个问题:1.出现了多次连续生产,未消费,或者一个商品被消费多次。解决:必须要--------每一个被唤醒的线程判断一次标记,所以将if判断改为while判断。2.出现了死锁。本方唤醒了本方,导致..
分类:
编程语言 时间:
2016-05-17 01:02:21
阅读次数:
233