java多线程之间的通信,及使用多种方式实现生产者消费者模式 实现需求:两个线程交替打印1,0,打印10轮 java多线程口诀: 高内聚,低耦合 线程操作资源类 判断干活通知 防止虚假唤醒 方式一:使用synchronized和Object的wait和notifyAll方法 wait:使当前线程阻塞 ...
分类:
编程语言 时间:
2020-07-12 22:15:45
阅读次数:
79
Disruptor是一款java高性能无锁并发处理框架。和JDK中的BlockingQueue有相似处,但是它的处理速度非常快!!!号称“一个线程一秒钟可以处理600W个订单”(反正渣渣电脑是没体会到)。 Disruptor功能十分强大,比如消费者阻塞等待;生产者-消费者一对一、一对多、多对一、多对 ...
分类:
其他好文 时间:
2020-07-09 19:42:22
阅读次数:
126
在利用jvisualvm.exe搞一个关于生产者消费者的一个纠结的问题,我们已经看到如何在生产者消费者模型中,由于队列的不安全导致消费者一直空转的情况,已经如何解决该问题。接下来我们继续跟踪该问题的其他几种并发情况,现在先把代码中的关键那一行休眠注释掉,还是用LinkedList作为队列跑一下,结果 ...
分类:
其他好文 时间:
2020-07-09 00:39:49
阅读次数:
86
先看代码: package com.wlf.service; import java.util.LinkedList; import java.util.Queue; import java.util.concurrent.LinkedBlockingQueue; /** * 生产者消费者模拟 * ...
分类:
其他好文 时间:
2020-07-08 22:41:29
阅读次数:
48
eureka-主要由两部分组成。 eureka-server eureka-client 客户端包括消费者和生产者。消费者和生产者都是客户端。只需引入pom,启动类添加注解,配置文件配置其他信息。 生产者服务启动时会向注册中心,发送注册等相关信息。 注册中心将其信息保存在内存中。并且默认没30秒发送 ...
分类:
编程语言 时间:
2020-07-08 14:55:43
阅读次数:
67
这道题是字节的面试题,当场问我有点紧张没想出来,只答上来要交替阻塞,还是面试官提醒我用生产者消费者思路解决。 题目 有A类线程50个,任务是打印字符A。有B类线程50个,任务是打印字符B。现在异步启动这100个线程,问如何才能让他们交替打印AB字符? 解题思路 设两个信号SemaphoreA和Sem ...
分类:
编程语言 时间:
2020-07-08 10:31:30
阅读次数:
100
消息队列 基本概述 MQ,Message Queue,基于TCP协议构建的简单协议,区别于具体的通信协议。 基于通信协议定义和抽象的更高层次的通信模型,一般都是生产者和消费者模型,又或者说服务端和客户端模型。 生产者/消费者模型:一般通过定义生产者和消费者实现消息通信从而屏蔽复杂的底层通信协议。应用 ...
分类:
系统相关 时间:
2020-07-07 09:29:51
阅读次数:
94
网络协议 在学习时我们一般使用的就是tcp网络协议,BIO效率低 而主要用的也是NIO 而怎样用NIO呢 在acticemq.xml配置中增加nio 生产者消费者修改协议代码 nio增强 也是先配置然后改协议的顺序 去官网找到相关配置复制粘贴进去 注意端口然后修改协议61608 ActiveMQ的消 ...
分类:
其他好文 时间:
2020-07-06 14:28:22
阅读次数:
54
一般来说,消息队列有两种场景,一种是发布者订阅者模式,一种是生产者消费者模式。利用redis这两种场景的消息队列都能够实现。 定义: 生产者消费者模式:生产者生产消息放到队列里,多个消费者同时监听队列,谁先抢到消息谁就会从队列中取走消息;即对于每个消息只能被最多一个消费者拥有。 发布者订阅者模式:发 ...
分类:
其他好文 时间:
2020-06-30 17:09:14
阅读次数:
106
一、消息队列 RabbitMQ是目前非常热门的一款消息中间件,不管是互联网大厂还是中小企业都在大量使用。 1.1 什么是消息队列 MQ全称为Message Queue,即消息队列。“消息队列”是在消息的传输过程中保存消息的容器。它是典型的:生产者、消费者模型。生产者不断向消息队列中生产消息,消费者不 ...
分类:
编程语言 时间:
2020-06-29 11:54:48
阅读次数:
71