1-生产者消费者问题 1. 使用栈来存放数据 1.1 把栈改造为支持线程安全 1.2 把栈的边界操作进行处理,当栈里的数据是0的时候,访问pull的线程就会等待。 当栈里的数据是200的时候,访问push的线程就会等待2. 提供一个生产者(Producer)线程类,生产随机大写字符压入到堆栈3. 提 ...
分类:
编程语言 时间:
2020-01-27 19:22:24
阅读次数:
68
一、队列模型 我们常用的的生产者-消费者模式,生成者生成消息,消费者消费已有的消息。消息队列一开始也是使用这种模式称之为队列模型,生产者将消息投递到消息队列中,消费者从消息队列中取出消息,而消息就是已队列的结构存放在消息队列中。但这种模型有个缺点,当这个消息需要被多个消费者消费的时候,需要生产者发送 ...
分类:
其他好文 时间:
2020-01-26 23:59:02
阅读次数:
135
生产者消费者模型 [目的] 解决并发编程中的绝大部分并发问题 【组成要素】 生产者:负责生产数据或任务 消费者:负责消费数据或者任务 容器:生产者和消费者进行通讯的媒介(阻塞队列)来达到解耦目的 [主要方法] 容器:q=queue.Queue() 生产者:q.put(product/tack) q. ...
分类:
其他好文 时间:
2020-01-23 14:10:40
阅读次数:
82
什么是消息中间件 消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。对于消息中间件,常见的角色大致也就有Producer(生产者)、Consumer(消费者) 常见的消息中间件产品: ...
分类:
其他好文 时间:
2020-01-21 16:36:33
阅读次数:
89
安装与配置 1.使用Xshell上传kafka压缩包到linux 2.使用 tar -vxzf 进行解压 3.进入 kafka config 下的 server.properties 进行配置 borker.id=1 kafka服务器节点设置id为1 释放注释 listeners 监听 listen ...
分类:
系统相关 时间:
2020-01-21 15:53:56
阅读次数:
117
BlockingQueue的继承结构 BlockingQueue是线程安全的阻塞队列,当队列为空时,拉取队列的线程会等待队列中重新有元素;当队列满时,添加元素的线程会等待队列有空位储存新元素。BlockingQueue的继承接口如下: 生产者-消费者模式 ArrayBlokingQueue实现类需要 ...
分类:
编程语言 时间:
2020-01-20 18:50:01
阅读次数:
106
一切要素都具有稀缺性,生产原料、机械、人力,包括信息要素由于必须有物质载体所以也是具有稀缺性的。在要素具有稀缺性的前提下,竞争是处理稀缺性的唯一方式。然而竞争的强度却不是普遍统一的,这也导致利润有相对高低之分。经济学理论对竞争强度与利润之间的关系已有充分论证,在完全竞争的情况下,生产者可获得的超额利 ...
分类:
其他好文 时间:
2020-01-19 22:02:27
阅读次数:
78
阻塞队列BlockingQueue是一个接口,基于ReentrantLock ,依据它的基本原理,我们可以实现Web中二段长连接聊天功能,当然其最常用的还是用于实现生产者和消费者模式: BlockingQueue接口提供了以下方法: package java.util.concurrent; imp ...
分类:
其他好文 时间:
2020-01-18 18:03:07
阅读次数:
113
一、springboot整合rabbitmq 1. 我们需要新建两个工程,一个作为生产者,另一个作为消费者。在pom.xml中添加amqp依赖: 2. 在application.yml文件中添加rabbitmq的相关信息: 3. 在生产者工程中新建配置项rabbitmqConfig.java,申明名 ...
分类:
其他好文 时间:
2020-01-17 09:21:06
阅读次数:
64
MQ产品常用的三种协议: 1:JMS rocketMQ,activeMQ 2.AMQP RabbitMq 3.MQTT activeMQ RabbitMQ是AMQP的一种实现。 AMQP是什么? 基本概念 broker:消息代理 producer: 消息的生产者 consumer: 消息的消费者 e ...
分类:
其他好文 时间:
2020-01-16 22:25:32
阅读次数:
93